// $ANTLR 3.4 C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g 2012-10-31 19:24:36
package PL.practica7;

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class AnalizadorYACCParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ABRIRANGULO", "ABRIRCORCHETE", "ABRIRLLAVE", "ABRIRPARENTESIS", "ABRIRVARIABLES", "ALMOHADILLA", "AND", "ANDLOGICO", "ASTERISCO", "BLANCO", "BREAK", "CADENA", "CARACTER", "CERRARANGULO", "CERRARCORCHETE", "CERRARLLAVE", "CERRARPARENTESIS", "CERRARVARIABLES", "CHAR", "COMA", "COMENTARIO", "COMPARACION", "CONTINUE", "DECREMENTO", "DEFINE", "DIGITO", "DOLLAR", "DOSPUNTOS", "DOUBLE", "ELSE", "FOR", "IDENT", "IDENTMAYUS", "IDENTMINUS", "IF", "IGUAL", "INCLUDE", "INCREMENTO", "INT", "INTERVAL", "LEFT", "LETRAMAYUS", "LETRAMINUS", "MAS", "MENOS", "NUEVA_LINEA", "NUMERO", "OR", "ORLOGICO", "POINTER", "PORCENTAJE", "PRINTF", "PUNTO", "RANGO", "REGISTER", "RETORNAR", "SEPARADOR", "SEPARADORBLOQUE", "SIGNAL", "SLASH", "SLASHINVERTIDO", "START", "STRUCT", "TOKEN", "TYPE", "TYPEDEF", "UNION", "VOID", "WHILE", "YYLEX", "DISTINTO", "EXCLAMACION", "INTERROGANTE"
    };

    public static final int EOF=-1;
    public static final int ABRIRANGULO=4;
    public static final int ABRIRCORCHETE=5;
    public static final int ABRIRLLAVE=6;
    public static final int ABRIRPARENTESIS=7;
    public static final int ABRIRVARIABLES=8;
    public static final int ALMOHADILLA=9;
    public static final int AND=10;
    public static final int ANDLOGICO=11;
    public static final int ASTERISCO=12;
    public static final int BLANCO=13;
    public static final int BREAK=14;
    public static final int CADENA=15;
    public static final int CARACTER=16;
    public static final int CERRARANGULO=17;
    public static final int CERRARCORCHETE=18;
    public static final int CERRARLLAVE=19;
    public static final int CERRARPARENTESIS=20;
    public static final int CERRARVARIABLES=21;
    public static final int CHAR=22;
    public static final int COMA=23;
    public static final int COMENTARIO=24;
    public static final int COMPARACION=25;
    public static final int CONTINUE=26;
    public static final int DECREMENTO=27;
    public static final int DEFINE=28;
    public static final int DIGITO=29;
    public static final int DOLLAR=30;
    public static final int DOSPUNTOS=31;
    public static final int DOUBLE=32;
    public static final int ELSE=33;
    public static final int FOR=34;
    public static final int IDENT=35;
    public static final int IDENTMAYUS=36;
    public static final int IDENTMINUS=37;
    public static final int IF=38;
    public static final int IGUAL=39;
    public static final int INCLUDE=40;
    public static final int INCREMENTO=41;
    public static final int INT=42;
    public static final int INTERVAL=43;
    public static final int LEFT=44;
    public static final int LETRAMAYUS=45;
    public static final int LETRAMINUS=46;
    public static final int MAS=47;
    public static final int MENOS=48;
    public static final int NUEVA_LINEA=49;
    public static final int NUMERO=50;
    public static final int OR=51;
    public static final int ORLOGICO=52;
    public static final int POINTER=53;
    public static final int PORCENTAJE=54;
    public static final int PRINTF=55;
    public static final int PUNTO=56;
    public static final int RANGO=57;
    public static final int REGISTER=58;
    public static final int RETORNAR=59;
    public static final int SEPARADOR=60;
    public static final int SEPARADORBLOQUE=61;
    public static final int SIGNAL=62;
    public static final int SLASH=63;
    public static final int SLASHINVERTIDO=64;
    public static final int START=65;
    public static final int STRUCT=66;
    public static final int TOKEN=67;
    public static final int TYPE=68;
    public static final int TYPEDEF=69;
    public static final int UNION=70;
    public static final int VOID=71;
    public static final int WHILE=72;
    public static final int YYLEX=73;
    public static final int DISTINTO=74;
    public static final int EXCLAMACION=75;
    public static final int INTERROGANTE=76;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public AnalizadorYACCParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public AnalizadorYACCParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return AnalizadorYACCParser.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g"; }



      boolean flagelse = false;
      int contador = 0;

    ArrayList <RecognitionException> errores = new ArrayList<RecognitionException>();

    public boolean listaVacia (){
        if (errores.isEmpty()){
          return true;
        }else
          return false;
    }

    public ArrayList getListaErrores(){return errores;}


    @Override
    public void reportError (RecognitionException e){
      System.err.println (getErrorMessage(e, getTokenNames()));
      errores.add(e);
    }




    // $ANTLR start "tipo"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:39:3: tipo : ( INT | CHAR | POINTER | REGISTER | DOUBLE ) ;
    public final void tipo() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:39:8: ( ( INT | CHAR | POINTER | REGISTER | DOUBLE ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:
            {
            if ( input.LA(1)==CHAR||input.LA(1)==DOUBLE||input.LA(1)==INT||input.LA(1)==POINTER||input.LA(1)==REGISTER ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "tipo"



    // $ANTLR start "operadores"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:40:3: operadores : ( MAS | MENOS | SLASH | ASTERISCO );
    public final void operadores() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:40:14: ( MAS | MENOS | SLASH | ASTERISCO )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:
            {
            if ( input.LA(1)==ASTERISCO||(input.LA(1) >= MAS && input.LA(1) <= MENOS)||input.LA(1)==SLASH ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "operadores"



    // $ANTLR start "identificadores"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:41:3: identificadores : ( ASTERISCO )? ( IDENT | IDENTMAYUS | IDENTMINUS ) ;
    public final void identificadores() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:41:19: ( ( ASTERISCO )? ( IDENT | IDENTMAYUS | IDENTMINUS ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:41:21: ( ASTERISCO )? ( IDENT | IDENTMAYUS | IDENTMINUS )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:41:21: ( ASTERISCO )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==ASTERISCO) ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:41:21: ASTERISCO
                    {
                    match(input,ASTERISCO,FOLLOW_ASTERISCO_in_identificadores87); 

                    }
                    break;

            }


            if ( (input.LA(1) >= IDENT && input.LA(1) <= IDENTMINUS) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "identificadores"



    // $ANTLR start "angulos"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:42:3: angulos : ( CERRARANGULO | ABRIRANGULO );
    public final void angulos() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:42:11: ( CERRARANGULO | ABRIRANGULO )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:
            {
            if ( input.LA(1)==ABRIRANGULO||input.LA(1)==CERRARANGULO ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "angulos"



    // $ANTLR start "vector"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:43:3: vector : ( identificadores corchetes ) ;
    public final void vector() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:43:10: ( ( identificadores corchetes ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:43:13: ( identificadores corchetes )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:43:13: ( identificadores corchetes )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:43:14: identificadores corchetes
            {
            pushFollow(FOLLOW_identificadores_in_vector119);
            identificadores();

            state._fsp--;


            pushFollow(FOLLOW_corchetes_in_vector121);
            corchetes();

            state._fsp--;


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "vector"



    // $ANTLR start "corchetes"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:44:3: corchetes : ABRIRCORCHETE ( RANGO | operacion )? CERRARCORCHETE ;
    public final void corchetes() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:44:13: ( ABRIRCORCHETE ( RANGO | operacion )? CERRARCORCHETE )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:44:15: ABRIRCORCHETE ( RANGO | operacion )? CERRARCORCHETE
            {
            match(input,ABRIRCORCHETE,FOLLOW_ABRIRCORCHETE_in_corchetes131); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:44:29: ( RANGO | operacion )?
            int alt2=3;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==RANGO) ) {
                alt2=1;
            }
            else if ( (LA2_0==ASTERISCO||(LA2_0 >= CADENA && LA2_0 <= CARACTER)||(LA2_0 >= IDENT && LA2_0 <= IDENTMINUS)||LA2_0==NUMERO||LA2_0==SIGNAL) ) {
                alt2=2;
            }
            switch (alt2) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:44:30: RANGO
                    {
                    match(input,RANGO,FOLLOW_RANGO_in_corchetes134); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:44:37: operacion
                    {
                    pushFollow(FOLLOW_operacion_in_corchetes137);
                    operacion();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARCORCHETE,FOLLOW_CERRARCORCHETE_in_corchetes141); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "corchetes"



    // $ANTLR start "parametros"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:45:3: parametros : ( CADENA | NUMERO | CARACTER | SIGNAL );
    public final void parametros() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:45:14: ( CADENA | NUMERO | CARACTER | SIGNAL )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:
            {
            if ( (input.LA(1) >= CADENA && input.LA(1) <= CARACTER)||input.LA(1)==NUMERO||input.LA(1)==SIGNAL ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "parametros"



    // $ANTLR start "operadoreslogicos"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:46:3: operadoreslogicos : ( OR | AND | ORLOGICO | ANDLOGICO ) ;
    public final void operadoreslogicos() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:46:21: ( ( OR | AND | ORLOGICO | ANDLOGICO ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:
            {
            if ( (input.LA(1) >= AND && input.LA(1) <= ANDLOGICO)||(input.LA(1) >= OR && input.LA(1) <= ORLOGICO) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "operadoreslogicos"



    // $ANTLR start "yacc"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:1: yacc : ( bloque1 )? SEPARADORBLOQUE bloque2 SEPARADORBLOQUE ( bloque3 )? ;
    public final void yacc() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:6: ( ( bloque1 )? SEPARADORBLOQUE bloque2 SEPARADORBLOQUE ( bloque3 )? )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:8: ( bloque1 )? SEPARADORBLOQUE bloque2 SEPARADORBLOQUE ( bloque3 )?
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:8: ( bloque1 )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==ABRIRVARIABLES) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:8: bloque1
                    {
                    pushFollow(FOLLOW_bloque1_in_yacc188);
                    bloque1();

                    state._fsp--;


                    }
                    break;

            }


            match(input,SEPARADORBLOQUE,FOLLOW_SEPARADORBLOQUE_in_yacc191); 

            pushFollow(FOLLOW_bloque2_in_yacc193);
            bloque2();

            state._fsp--;


            match(input,SEPARADORBLOQUE,FOLLOW_SEPARADORBLOQUE_in_yacc195); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:57: ( bloque3 )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==ALMOHADILLA||LA4_0==YYLEX) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:49:57: bloque3
                    {
                    pushFollow(FOLLOW_bloque3_in_yacc197);
                    bloque3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "yacc"



    // $ANTLR start "bloque1"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:54:1: bloque1 : bloqueDeclaracion declaraciontoken ;
    public final void bloque1() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:54:9: ( bloqueDeclaracion declaraciontoken )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:54:12: bloqueDeclaracion declaraciontoken
            {
            pushFollow(FOLLOW_bloqueDeclaracion_in_bloque1210);
            bloqueDeclaracion();

            state._fsp--;


            pushFollow(FOLLOW_declaraciontoken_in_bloque1212);
            declaraciontoken();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloque1"



    // $ANTLR start "bloqueDeclaracion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:56:4: bloqueDeclaracion : ABRIRVARIABLES dentro_declaracion CERRARVARIABLES ;
    public final void bloqueDeclaracion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:56:21: ( ABRIRVARIABLES dentro_declaracion CERRARVARIABLES )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:56:23: ABRIRVARIABLES dentro_declaracion CERRARVARIABLES
            {
            match(input,ABRIRVARIABLES,FOLLOW_ABRIRVARIABLES_in_bloqueDeclaracion225); 

            pushFollow(FOLLOW_dentro_declaracion_in_bloqueDeclaracion227);
            dentro_declaracion();

            state._fsp--;


            match(input,CERRARVARIABLES,FOLLOW_CERRARVARIABLES_in_bloqueDeclaracion229); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloqueDeclaracion"



    // $ANTLR start "incluir"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:57:6: incluir : ALMOHADILLA INCLUDE ( ABRIRANGULO identificadores ) CERRARANGULO ;
    public final void incluir() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:57:14: ( ALMOHADILLA INCLUDE ( ABRIRANGULO identificadores ) CERRARANGULO )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:57:17: ALMOHADILLA INCLUDE ( ABRIRANGULO identificadores ) CERRARANGULO
            {
            match(input,ALMOHADILLA,FOLLOW_ALMOHADILLA_in_incluir242); 

            match(input,INCLUDE,FOLLOW_INCLUDE_in_incluir244); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:57:37: ( ABRIRANGULO identificadores )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:57:38: ABRIRANGULO identificadores
            {
            match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_incluir247); 

            pushFollow(FOLLOW_identificadores_in_incluir249);
            identificadores();

            state._fsp--;


            }


            match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_incluir252); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "incluir"



    // $ANTLR start "dentro_declaracion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:6: dentro_declaracion : ( incluir )* ( definiryacc | declaracionyacc | estructura )* ;
    public final void dentro_declaracion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:25: ( ( incluir )* ( definiryacc | declaracionyacc | estructura )* )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:27: ( incluir )* ( definiryacc | declaracionyacc | estructura )*
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:27: ( incluir )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==ALMOHADILLA) ) {
                    int LA5_1 = input.LA(2);

                    if ( (LA5_1==INCLUDE) ) {
                        alt5=1;
                    }


                }


                switch (alt5) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:27: incluir
            	    {
            	    pushFollow(FOLLOW_incluir_in_dentro_declaracion264);
            	    incluir();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:36: ( definiryacc | declaracionyacc | estructura )*
            loop6:
            do {
                int alt6=4;
                switch ( input.LA(1) ) {
                case ALMOHADILLA:
                    {
                    alt6=1;
                    }
                    break;
                case CHAR:
                case DOUBLE:
                case INT:
                case INTERVAL:
                case POINTER:
                case REGISTER:
                    {
                    alt6=2;
                    }
                    break;
                case TYPEDEF:
                    {
                    alt6=3;
                    }
                    break;

                }

                switch (alt6) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:37: definiryacc
            	    {
            	    pushFollow(FOLLOW_definiryacc_in_dentro_declaracion268);
            	    definiryacc();

            	    state._fsp--;


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:49: declaracionyacc
            	    {
            	    pushFollow(FOLLOW_declaracionyacc_in_dentro_declaracion270);
            	    declaracionyacc();

            	    state._fsp--;


            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:58:65: estructura
            	    {
            	    pushFollow(FOLLOW_estructura_in_dentro_declaracion272);
            	    estructura();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dentro_declaracion"



    // $ANTLR start "declaracionyacc"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:6: declaracionyacc : ( tipo | INTERVAL ) identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? ( COMA identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? )* SEPARADOR ;
    public final void declaracionyacc() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:22: ( ( tipo | INTERVAL ) identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? ( COMA identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? )* SEPARADOR )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:24: ( tipo | INTERVAL ) identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? ( COMA identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? )* SEPARADOR
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:24: ( tipo | INTERVAL )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==CHAR||LA7_0==DOUBLE||LA7_0==INT||LA7_0==POINTER||LA7_0==REGISTER) ) {
                alt7=1;
            }
            else if ( (LA7_0==INTERVAL) ) {
                alt7=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;

            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:25: tipo
                    {
                    pushFollow(FOLLOW_tipo_in_declaracionyacc287);
                    tipo();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:30: INTERVAL
                    {
                    match(input,INTERVAL,FOLLOW_INTERVAL_in_declaracionyacc289); 

                    }
                    break;

            }


            pushFollow(FOLLOW_identificadores_in_declaracionyacc292);
            identificadores();

            state._fsp--;


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:56: ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )?
            int alt8=3;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==ABRIRPARENTESIS) ) {
                alt8=1;
            }
            else if ( (LA8_0==ABRIRCORCHETE) ) {
                alt8=2;
            }
            switch (alt8) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:57: ( ABRIRPARENTESIS CERRARPARENTESIS )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:57: ( ABRIRPARENTESIS CERRARPARENTESIS )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:58: ABRIRPARENTESIS CERRARPARENTESIS
                    {
                    match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_declaracionyacc296); 

                    match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_declaracionyacc298); 

                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:59:92: corchetes
                    {
                    pushFollow(FOLLOW_corchetes_in_declaracionyacc301);
                    corchetes();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:23: ( COMA identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )? )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==COMA) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:24: COMA identificadores ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )?
            	    {
            	    match(input,COMA,FOLLOW_COMA_in_declaracionyacc328); 

            	    pushFollow(FOLLOW_identificadores_in_declaracionyacc331);
            	    identificadores();

            	    state._fsp--;


            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:46: ( ( ABRIRPARENTESIS CERRARPARENTESIS ) | corchetes )?
            	    int alt9=3;
            	    int LA9_0 = input.LA(1);

            	    if ( (LA9_0==ABRIRPARENTESIS) ) {
            	        alt9=1;
            	    }
            	    else if ( (LA9_0==ABRIRCORCHETE) ) {
            	        alt9=2;
            	    }
            	    switch (alt9) {
            	        case 1 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:47: ( ABRIRPARENTESIS CERRARPARENTESIS )
            	            {
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:47: ( ABRIRPARENTESIS CERRARPARENTESIS )
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:48: ABRIRPARENTESIS CERRARPARENTESIS
            	            {
            	            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_declaracionyacc335); 

            	            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_declaracionyacc337); 

            	            }


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:60:82: corchetes
            	            {
            	            pushFollow(FOLLOW_corchetes_in_declaracionyacc340);
            	            corchetes();

            	            state._fsp--;


            	            }
            	            break;

            	    }


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);


            match(input,SEPARADOR,FOLLOW_SEPARADOR_in_declaracionyacc346); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "declaracionyacc"



    // $ANTLR start "definiryacc"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:61:6: definiryacc : ALMOHADILLA DEFINE identificadores tipo ;
    public final void definiryacc() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:61:18: ( ALMOHADILLA DEFINE identificadores tipo )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:61:20: ALMOHADILLA DEFINE identificadores tipo
            {
            match(input,ALMOHADILLA,FOLLOW_ALMOHADILLA_in_definiryacc358); 

            match(input,DEFINE,FOLLOW_DEFINE_in_definiryacc360); 

            pushFollow(FOLLOW_identificadores_in_definiryacc362);
            identificadores();

            state._fsp--;


            pushFollow(FOLLOW_tipo_in_definiryacc364);
            tipo();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "definiryacc"



    // $ANTLR start "estructura"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:6: estructura : TYPEDEF STRUCT IDENTMINUS ABRIRLLAVE ( declaracionyacc )+ CERRARLLAVE ( identificadores | INTERVAL ) SEPARADOR ;
    public final void estructura() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:17: ( TYPEDEF STRUCT IDENTMINUS ABRIRLLAVE ( declaracionyacc )+ CERRARLLAVE ( identificadores | INTERVAL ) SEPARADOR )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:19: TYPEDEF STRUCT IDENTMINUS ABRIRLLAVE ( declaracionyacc )+ CERRARLLAVE ( identificadores | INTERVAL ) SEPARADOR
            {
            match(input,TYPEDEF,FOLLOW_TYPEDEF_in_estructura376); 

            match(input,STRUCT,FOLLOW_STRUCT_in_estructura378); 

            match(input,IDENTMINUS,FOLLOW_IDENTMINUS_in_estructura380); 

            match(input,ABRIRLLAVE,FOLLOW_ABRIRLLAVE_in_estructura382); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:56: ( declaracionyacc )+
            int cnt11=0;
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==CHAR||LA11_0==DOUBLE||(LA11_0 >= INT && LA11_0 <= INTERVAL)||LA11_0==POINTER||LA11_0==REGISTER) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:57: declaracionyacc
            	    {
            	    pushFollow(FOLLOW_declaracionyacc_in_estructura385);
            	    declaracionyacc();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt11 >= 1 ) break loop11;
                        EarlyExitException eee =
                            new EarlyExitException(11, input);
                        throw eee;
                }
                cnt11++;
            } while (true);


            match(input,CERRARLLAVE,FOLLOW_CERRARLLAVE_in_estructura390); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:88: ( identificadores | INTERVAL )
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==ASTERISCO||(LA12_0 >= IDENT && LA12_0 <= IDENTMINUS)) ) {
                alt12=1;
            }
            else if ( (LA12_0==INTERVAL) ) {
                alt12=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;

            }
            switch (alt12) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:89: identificadores
                    {
                    pushFollow(FOLLOW_identificadores_in_estructura393);
                    identificadores();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:62:105: INTERVAL
                    {
                    match(input,INTERVAL,FOLLOW_INTERVAL_in_estructura395); 

                    }
                    break;

            }


            match(input,SEPARADOR,FOLLOW_SEPARADOR_in_estructura398); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "estructura"



    // $ANTLR start "token"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:5: token : PORCENTAJE TOKEN ( ABRIRANGULO ( IDENT | IDENTMINUS | IDENTMAYUS ) CERRARANGULO )? ( IDENTMAYUS )+ ;
    public final void token() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:11: ( PORCENTAJE TOKEN ( ABRIRANGULO ( IDENT | IDENTMINUS | IDENTMAYUS ) CERRARANGULO )? ( IDENTMAYUS )+ )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:13: PORCENTAJE TOKEN ( ABRIRANGULO ( IDENT | IDENTMINUS | IDENTMAYUS ) CERRARANGULO )? ( IDENTMAYUS )+
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_token421); 

            match(input,TOKEN,FOLLOW_TOKEN_in_token423); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:30: ( ABRIRANGULO ( IDENT | IDENTMINUS | IDENTMAYUS ) CERRARANGULO )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==ABRIRANGULO) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:31: ABRIRANGULO ( IDENT | IDENTMINUS | IDENTMAYUS ) CERRARANGULO
                    {
                    match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_token426); 

                    if ( (input.LA(1) >= IDENT && input.LA(1) <= IDENTMINUS) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_token436); 

                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:88: ( IDENTMAYUS )+
            int cnt14=0;
            loop14:
            do {
                int alt14=2;
                int LA14_0 = input.LA(1);

                if ( (LA14_0==IDENTMAYUS) ) {
                    alt14=1;
                }


                switch (alt14) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:66:88: IDENTMAYUS
            	    {
            	    match(input,IDENTMAYUS,FOLLOW_IDENTMAYUS_in_token440); 

            	    }
            	    break;

            	default :
            	    if ( cnt14 >= 1 ) break loop14;
                        EarlyExitException eee =
                            new EarlyExitException(14, input);
                        throw eee;
                }
                cnt14++;
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "token"



    // $ANTLR start "left"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:5: left : PORCENTAJE LEFT ( ( CARACTER )+ | IDENTMAYUS ) ;
    public final void left() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:10: ( PORCENTAJE LEFT ( ( CARACTER )+ | IDENTMAYUS ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:12: PORCENTAJE LEFT ( ( CARACTER )+ | IDENTMAYUS )
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_left452); 

            match(input,LEFT,FOLLOW_LEFT_in_left454); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:28: ( ( CARACTER )+ | IDENTMAYUS )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==CARACTER) ) {
                alt16=1;
            }
            else if ( (LA16_0==IDENTMAYUS) ) {
                alt16=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;

            }
            switch (alt16) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:29: ( CARACTER )+
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:29: ( CARACTER )+
                    int cnt15=0;
                    loop15:
                    do {
                        int alt15=2;
                        int LA15_0 = input.LA(1);

                        if ( (LA15_0==CARACTER) ) {
                            alt15=1;
                        }


                        switch (alt15) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:29: CARACTER
                    	    {
                    	    match(input,CARACTER,FOLLOW_CARACTER_in_left457); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt15 >= 1 ) break loop15;
                                EarlyExitException eee =
                                    new EarlyExitException(15, input);
                                throw eee;
                        }
                        cnt15++;
                    } while (true);


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:67:41: IDENTMAYUS
                    {
                    match(input,IDENTMAYUS,FOLLOW_IDENTMAYUS_in_left462); 

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "left"



    // $ANTLR start "type"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:68:5: type : PORCENTAJE TYPE ( ABRIRANGULO identificadores CERRARANGULO )? IDENTMINUS ;
    public final void type() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:68:10: ( PORCENTAJE TYPE ( ABRIRANGULO identificadores CERRARANGULO )? IDENTMINUS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:68:12: PORCENTAJE TYPE ( ABRIRANGULO identificadores CERRARANGULO )? IDENTMINUS
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_type474); 

            match(input,TYPE,FOLLOW_TYPE_in_type476); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:68:28: ( ABRIRANGULO identificadores CERRARANGULO )?
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==ABRIRANGULO) ) {
                alt17=1;
            }
            switch (alt17) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:68:29: ABRIRANGULO identificadores CERRARANGULO
                    {
                    match(input,ABRIRANGULO,FOLLOW_ABRIRANGULO_in_type479); 

                    pushFollow(FOLLOW_identificadores_in_type481);
                    identificadores();

                    state._fsp--;


                    match(input,CERRARANGULO,FOLLOW_CERRARANGULO_in_type483); 

                    }
                    break;

            }


            match(input,IDENTMINUS,FOLLOW_IDENTMINUS_in_type487); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "type"



    // $ANTLR start "start"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:69:5: start : PORCENTAJE START IDENTMINUS ;
    public final void start() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:69:11: ( PORCENTAJE START IDENTMINUS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:69:13: PORCENTAJE START IDENTMINUS
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_start498); 

            match(input,START,FOLLOW_START_in_start500); 

            match(input,IDENTMINUS,FOLLOW_IDENTMINUS_in_start502); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "start"



    // $ANTLR start "union"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:70:5: union : PORCENTAJE UNION ABRIRLLAVE ( declaracionyacc )* CERRARLLAVE ;
    public final void union() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:70:11: ( PORCENTAJE UNION ABRIRLLAVE ( declaracionyacc )* CERRARLLAVE )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:70:13: PORCENTAJE UNION ABRIRLLAVE ( declaracionyacc )* CERRARLLAVE
            {
            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_union513); 

            match(input,UNION,FOLLOW_UNION_in_union515); 

            match(input,ABRIRLLAVE,FOLLOW_ABRIRLLAVE_in_union517); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:70:41: ( declaracionyacc )*
            loop18:
            do {
                int alt18=2;
                int LA18_0 = input.LA(1);

                if ( (LA18_0==CHAR||LA18_0==DOUBLE||(LA18_0 >= INT && LA18_0 <= INTERVAL)||LA18_0==POINTER||LA18_0==REGISTER) ) {
                    alt18=1;
                }


                switch (alt18) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:70:42: declaracionyacc
            	    {
            	    pushFollow(FOLLOW_declaracionyacc_in_union520);
            	    declaracionyacc();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop18;
                }
            } while (true);


            match(input,CERRARLLAVE,FOLLOW_CERRARLLAVE_in_union524); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "union"



    // $ANTLR start "declaraciontoken"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:5: declaraciontoken : ( start )? ( token | left | union | type )* ;
    public final void declaraciontoken() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:22: ( ( start )? ( token | left | union | type )* )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:24: ( start )? ( token | left | union | type )*
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:24: ( start )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==PORCENTAJE) ) {
                int LA19_1 = input.LA(2);

                if ( (LA19_1==START) ) {
                    alt19=1;
                }
            }
            switch (alt19) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:24: start
                    {
                    pushFollow(FOLLOW_start_in_declaraciontoken535);
                    start();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:31: ( token | left | union | type )*
            loop20:
            do {
                int alt20=5;
                int LA20_0 = input.LA(1);

                if ( (LA20_0==PORCENTAJE) ) {
                    switch ( input.LA(2) ) {
                    case TOKEN:
                        {
                        alt20=1;
                        }
                        break;
                    case LEFT:
                        {
                        alt20=2;
                        }
                        break;
                    case UNION:
                        {
                        alt20=3;
                        }
                        break;
                    case TYPE:
                        {
                        alt20=4;
                        }
                        break;

                    }

                }


                switch (alt20) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:32: token
            	    {
            	    pushFollow(FOLLOW_token_in_declaraciontoken539);
            	    token();

            	    state._fsp--;


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:38: left
            	    {
            	    pushFollow(FOLLOW_left_in_declaraciontoken541);
            	    left();

            	    state._fsp--;


            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:43: union
            	    {
            	    pushFollow(FOLLOW_union_in_declaraciontoken543);
            	    union();

            	    state._fsp--;


            	    }
            	    break;
            	case 4 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:71:49: type
            	    {
            	    pushFollow(FOLLOW_type_in_declaraciontoken545);
            	    type();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop20;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "declaraciontoken"



    // $ANTLR start "bloque2"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:77:1: bloque2 : ( reglasyacc )+ ;
    public final void bloque2() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:77:8: ( ( reglasyacc )+ )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:77:10: ( reglasyacc )+
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:77:10: ( reglasyacc )+
            int cnt21=0;
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( (LA21_0==IDENTMINUS) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:77:10: reglasyacc
            	    {
            	    pushFollow(FOLLOW_reglasyacc_in_bloque2563);
            	    reglasyacc();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt21 >= 1 ) break loop21;
                        EarlyExitException eee =
                            new EarlyExitException(21, input);
                        throw eee;
                }
                cnt21++;
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloque2"



    // $ANTLR start "reglasyacc"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:3: reglasyacc : IDENTMINUS DOSPUNTOS ( OR | IDENT | IDENTMAYUS | PORCENTAJE | IDENTMINUS | CARACTER | accion )+ SEPARADOR ;
    public final void reglasyacc() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:14: ( IDENTMINUS DOSPUNTOS ( OR | IDENT | IDENTMAYUS | PORCENTAJE | IDENTMINUS | CARACTER | accion )+ SEPARADOR )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:16: IDENTMINUS DOSPUNTOS ( OR | IDENT | IDENTMAYUS | PORCENTAJE | IDENTMINUS | CARACTER | accion )+ SEPARADOR
            {
            match(input,IDENTMINUS,FOLLOW_IDENTMINUS_in_reglasyacc573); 

            match(input,DOSPUNTOS,FOLLOW_DOSPUNTOS_in_reglasyacc575); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:37: ( OR | IDENT | IDENTMAYUS | PORCENTAJE | IDENTMINUS | CARACTER | accion )+
            int cnt22=0;
            loop22:
            do {
                int alt22=8;
                switch ( input.LA(1) ) {
                case OR:
                    {
                    alt22=1;
                    }
                    break;
                case IDENT:
                    {
                    alt22=2;
                    }
                    break;
                case IDENTMAYUS:
                    {
                    alt22=3;
                    }
                    break;
                case PORCENTAJE:
                    {
                    alt22=4;
                    }
                    break;
                case IDENTMINUS:
                    {
                    alt22=5;
                    }
                    break;
                case CARACTER:
                    {
                    alt22=6;
                    }
                    break;
                case ABRIRLLAVE:
                    {
                    alt22=7;
                    }
                    break;

                }

                switch (alt22) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:38: OR
            	    {
            	    match(input,OR,FOLLOW_OR_in_reglasyacc578); 

            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:41: IDENT
            	    {
            	    match(input,IDENT,FOLLOW_IDENT_in_reglasyacc580); 

            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:47: IDENTMAYUS
            	    {
            	    match(input,IDENTMAYUS,FOLLOW_IDENTMAYUS_in_reglasyacc582); 

            	    }
            	    break;
            	case 4 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:58: PORCENTAJE
            	    {
            	    match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_reglasyacc584); 

            	    }
            	    break;
            	case 5 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:69: IDENTMINUS
            	    {
            	    match(input,IDENTMINUS,FOLLOW_IDENTMINUS_in_reglasyacc586); 

            	    }
            	    break;
            	case 6 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:80: CARACTER
            	    {
            	    match(input,CARACTER,FOLLOW_CARACTER_in_reglasyacc588); 

            	    }
            	    break;
            	case 7 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:78:90: accion
            	    {
            	    pushFollow(FOLLOW_accion_in_reglasyacc591);
            	    accion();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt22 >= 1 ) break loop22;
                        EarlyExitException eee =
                            new EarlyExitException(22, input);
                        throw eee;
                }
                cnt22++;
            } while (true);


            match(input,SEPARADOR,FOLLOW_SEPARADOR_in_reglasyacc595); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "reglasyacc"



    // $ANTLR start "accion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:5: accion : ABRIRLLAVE ( condicionif | ( ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR ) )+ CERRARLLAVE ;
    public final void accion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:12: ( ABRIRLLAVE ( condicionif | ( ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR ) )+ CERRARLLAVE )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:14: ABRIRLLAVE ( condicionif | ( ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR ) )+ CERRARLLAVE
            {
            match(input,ABRIRLLAVE,FOLLOW_ABRIRLLAVE_in_accion606); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:25: ( condicionif | ( ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR ) )+
            int cnt24=0;
            loop24:
            do {
                int alt24=3;
                int LA24_0 = input.LA(1);

                if ( (LA24_0==IF) ) {
                    alt24=1;
                }
                else if ( (LA24_0==ASTERISCO||(LA24_0 >= IDENT && LA24_0 <= IDENTMINUS)||LA24_0==PRINTF||LA24_0==SIGNAL) ) {
                    alt24=2;
                }


                switch (alt24) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:26: condicionif
            	    {
            	    pushFollow(FOLLOW_condicionif_in_accion609);
            	    condicionif();

            	    state._fsp--;


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:40: ( ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR )
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:40: ( ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR )
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:41: ( signaloperations | printf | IDENTMAYUS | IDENTMINUS ) SEPARADOR
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:41: ( signaloperations | printf | IDENTMAYUS | IDENTMINUS )
            	    int alt23=4;
            	    switch ( input.LA(1) ) {
            	    case ASTERISCO:
            	    case IDENT:
            	    case SIGNAL:
            	        {
            	        alt23=1;
            	        }
            	        break;
            	    case IDENTMAYUS:
            	        {
            	        int LA23_2 = input.LA(2);

            	        if ( (LA23_2==ABRIRCORCHETE) ) {
            	            alt23=1;
            	        }
            	        else if ( (LA23_2==SEPARADOR) ) {
            	            alt23=3;
            	        }
            	        else {
            	            NoViableAltException nvae =
            	                new NoViableAltException("", 23, 2, input);

            	            throw nvae;

            	        }
            	        }
            	        break;
            	    case PRINTF:
            	        {
            	        alt23=2;
            	        }
            	        break;
            	    case IDENTMINUS:
            	        {
            	        int LA23_4 = input.LA(2);

            	        if ( (LA23_4==ABRIRCORCHETE) ) {
            	            alt23=1;
            	        }
            	        else if ( (LA23_4==SEPARADOR) ) {
            	            alt23=4;
            	        }
            	        else {
            	            NoViableAltException nvae =
            	                new NoViableAltException("", 23, 4, input);

            	            throw nvae;

            	        }
            	        }
            	        break;
            	    default:
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 23, 0, input);

            	        throw nvae;

            	    }

            	    switch (alt23) {
            	        case 1 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:42: signaloperations
            	            {
            	            pushFollow(FOLLOW_signaloperations_in_accion615);
            	            signaloperations();

            	            state._fsp--;


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:60: printf
            	            {
            	            pushFollow(FOLLOW_printf_in_accion618);
            	            printf();

            	            state._fsp--;


            	            }
            	            break;
            	        case 3 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:68: IDENTMAYUS
            	            {
            	            match(input,IDENTMAYUS,FOLLOW_IDENTMAYUS_in_accion621); 

            	            }
            	            break;
            	        case 4 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:79:79: IDENTMINUS
            	            {
            	            match(input,IDENTMINUS,FOLLOW_IDENTMINUS_in_accion623); 

            	            }
            	            break;

            	    }


            	    match(input,SEPARADOR,FOLLOW_SEPARADOR_in_accion626); 

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt24 >= 1 ) break loop24;
                        EarlyExitException eee =
                            new EarlyExitException(24, input);
                        throw eee;
                }
                cnt24++;
            } while (true);


            match(input,CERRARLLAVE,FOLLOW_CERRARLLAVE_in_accion631); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "accion"



    // $ANTLR start "signaloperations"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:5: signaloperations : ( SIGNAL | vector ) ( ( IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )* )+ | ( IGUAL llamadafuncion ) ) ;
    public final void signaloperations() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:22: ( ( SIGNAL | vector ) ( ( IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )* )+ | ( IGUAL llamadafuncion ) ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:24: ( SIGNAL | vector ) ( ( IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )* )+ | ( IGUAL llamadafuncion ) )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:24: ( SIGNAL | vector )
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==SIGNAL) ) {
                alt25=1;
            }
            else if ( (LA25_0==ASTERISCO||(LA25_0 >= IDENT && LA25_0 <= IDENTMINUS)) ) {
                alt25=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 25, 0, input);

                throw nvae;

            }
            switch (alt25) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:25: SIGNAL
                    {
                    match(input,SIGNAL,FOLLOW_SIGNAL_in_signaloperations643); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:32: vector
                    {
                    pushFollow(FOLLOW_vector_in_signaloperations645);
                    vector();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:40: ( ( IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )* )+ | ( IGUAL llamadafuncion ) )
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==IGUAL) ) {
                switch ( input.LA(2) ) {
                case MENOS:
                case SIGNAL:
                    {
                    alt32=1;
                    }
                    break;
                case ASTERISCO:
                    {
                    int LA32_3 = input.LA(3);

                    if ( ((LA32_3 >= IDENT && LA32_3 <= IDENTMINUS)) ) {
                        int LA32_4 = input.LA(4);

                        if ( (LA32_4==ABRIRCORCHETE) ) {
                            alt32=1;
                        }
                        else if ( (LA32_4==ABRIRPARENTESIS) ) {
                            alt32=2;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 32, 4, input);

                            throw nvae;

                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 32, 3, input);

                        throw nvae;

                    }
                    }
                    break;
                case IDENT:
                case IDENTMAYUS:
                case IDENTMINUS:
                    {
                    int LA32_4 = input.LA(3);

                    if ( (LA32_4==ABRIRCORCHETE) ) {
                        alt32=1;
                    }
                    else if ( (LA32_4==ABRIRPARENTESIS) ) {
                        alt32=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 32, 4, input);

                        throw nvae;

                    }
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 32, 1, input);

                    throw nvae;

                }

            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;

            }
            switch (alt32) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:41: ( IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )* )+
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:41: ( IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )* )+
                    int cnt31=0;
                    loop31:
                    do {
                        int alt31=2;
                        int LA31_0 = input.LA(1);

                        if ( (LA31_0==IGUAL) ) {
                            alt31=1;
                        }


                        switch (alt31) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:42: IGUAL ( MENOS )? ( SIGNAL | vector ) ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )*
                    	    {
                    	    match(input,IGUAL,FOLLOW_IGUAL_in_signaloperations650); 

                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:48: ( MENOS )?
                    	    int alt26=2;
                    	    int LA26_0 = input.LA(1);

                    	    if ( (LA26_0==MENOS) ) {
                    	        alt26=1;
                    	    }
                    	    switch (alt26) {
                    	        case 1 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:48: MENOS
                    	            {
                    	            match(input,MENOS,FOLLOW_MENOS_in_signaloperations652); 

                    	            }
                    	            break;

                    	    }


                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:55: ( SIGNAL | vector )
                    	    int alt27=2;
                    	    int LA27_0 = input.LA(1);

                    	    if ( (LA27_0==SIGNAL) ) {
                    	        alt27=1;
                    	    }
                    	    else if ( (LA27_0==ASTERISCO||(LA27_0 >= IDENT && LA27_0 <= IDENTMINUS)) ) {
                    	        alt27=2;
                    	    }
                    	    else {
                    	        NoViableAltException nvae =
                    	            new NoViableAltException("", 27, 0, input);

                    	        throw nvae;

                    	    }
                    	    switch (alt27) {
                    	        case 1 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:56: SIGNAL
                    	            {
                    	            match(input,SIGNAL,FOLLOW_SIGNAL_in_signaloperations656); 

                    	            }
                    	            break;
                    	        case 2 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:63: vector
                    	            {
                    	            pushFollow(FOLLOW_vector_in_signaloperations658);
                    	            vector();

                    	            state._fsp--;


                    	            }
                    	            break;

                    	    }


                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:71: ( ( operadores | PORCENTAJE ) ( SIGNAL | vector ) )*
                    	    loop30:
                    	    do {
                    	        int alt30=2;
                    	        int LA30_0 = input.LA(1);

                    	        if ( (LA30_0==ASTERISCO||(LA30_0 >= MAS && LA30_0 <= MENOS)||LA30_0==PORCENTAJE||LA30_0==SLASH) ) {
                    	            alt30=1;
                    	        }


                    	        switch (alt30) {
                    	    	case 1 :
                    	    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:72: ( operadores | PORCENTAJE ) ( SIGNAL | vector )
                    	    	    {
                    	    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:72: ( operadores | PORCENTAJE )
                    	    	    int alt28=2;
                    	    	    int LA28_0 = input.LA(1);

                    	    	    if ( (LA28_0==ASTERISCO||(LA28_0 >= MAS && LA28_0 <= MENOS)||LA28_0==SLASH) ) {
                    	    	        alt28=1;
                    	    	    }
                    	    	    else if ( (LA28_0==PORCENTAJE) ) {
                    	    	        alt28=2;
                    	    	    }
                    	    	    else {
                    	    	        NoViableAltException nvae =
                    	    	            new NoViableAltException("", 28, 0, input);

                    	    	        throw nvae;

                    	    	    }
                    	    	    switch (alt28) {
                    	    	        case 1 :
                    	    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:73: operadores
                    	    	            {
                    	    	            pushFollow(FOLLOW_operadores_in_signaloperations663);
                    	    	            operadores();

                    	    	            state._fsp--;


                    	    	            }
                    	    	            break;
                    	    	        case 2 :
                    	    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:84: PORCENTAJE
                    	    	            {
                    	    	            match(input,PORCENTAJE,FOLLOW_PORCENTAJE_in_signaloperations665); 

                    	    	            }
                    	    	            break;

                    	    	    }


                    	    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:96: ( SIGNAL | vector )
                    	    	    int alt29=2;
                    	    	    int LA29_0 = input.LA(1);

                    	    	    if ( (LA29_0==SIGNAL) ) {
                    	    	        alt29=1;
                    	    	    }
                    	    	    else if ( (LA29_0==ASTERISCO||(LA29_0 >= IDENT && LA29_0 <= IDENTMINUS)) ) {
                    	    	        alt29=2;
                    	    	    }
                    	    	    else {
                    	    	        NoViableAltException nvae =
                    	    	            new NoViableAltException("", 29, 0, input);

                    	    	        throw nvae;

                    	    	    }
                    	    	    switch (alt29) {
                    	    	        case 1 :
                    	    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:97: SIGNAL
                    	    	            {
                    	    	            match(input,SIGNAL,FOLLOW_SIGNAL_in_signaloperations669); 

                    	    	            }
                    	    	            break;
                    	    	        case 2 :
                    	    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:104: vector
                    	    	            {
                    	    	            pushFollow(FOLLOW_vector_in_signaloperations671);
                    	    	            vector();

                    	    	            state._fsp--;


                    	    	            }
                    	    	            break;

                    	    	    }


                    	    	    }
                    	    	    break;

                    	    	default :
                    	    	    break loop30;
                    	        }
                    	    } while (true);


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt31 >= 1 ) break loop31;
                                EarlyExitException eee =
                                    new EarlyExitException(31, input);
                                throw eee;
                        }
                        cnt31++;
                    } while (true);


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:118: ( IGUAL llamadafuncion )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:118: ( IGUAL llamadafuncion )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:80:119: IGUAL llamadafuncion
                    {
                    match(input,IGUAL,FOLLOW_IGUAL_in_signaloperations681); 

                    pushFollow(FOLLOW_llamadafuncion_in_signaloperations683);
                    llamadafuncion();

                    state._fsp--;


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "signaloperations"



    // $ANTLR start "bloque3"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:86:1: bloque3 : ( definir )* bloqueyylex bloqueinterval ;
    public final void bloque3() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:86:9: ( ( definir )* bloqueyylex bloqueinterval )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:86:11: ( definir )* bloqueyylex bloqueinterval
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:86:11: ( definir )*
            loop33:
            do {
                int alt33=2;
                int LA33_0 = input.LA(1);

                if ( (LA33_0==ALMOHADILLA) ) {
                    alt33=1;
                }


                switch (alt33) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:86:11: definir
            	    {
            	    pushFollow(FOLLOW_definir_in_bloque3701);
            	    definir();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop33;
                }
            } while (true);


            pushFollow(FOLLOW_bloqueyylex_in_bloque3704);
            bloqueyylex();

            state._fsp--;


            pushFollow(FOLLOW_bloqueinterval_in_bloque3706);
            bloqueinterval();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloque3"



    // $ANTLR start "definir"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:87:4: definir : ALMOHADILLA DEFINE identificadores parametros ;
    public final void definir() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:87:12: ( ALMOHADILLA DEFINE identificadores parametros )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:87:14: ALMOHADILLA DEFINE identificadores parametros
            {
            match(input,ALMOHADILLA,FOLLOW_ALMOHADILLA_in_definir717); 

            match(input,DEFINE,FOLLOW_DEFINE_in_definir719); 

            pushFollow(FOLLOW_identificadores_in_definir721);
            identificadores();

            state._fsp--;


            pushFollow(FOLLOW_parametros_in_definir723);
            parametros();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "definir"



    // $ANTLR start "bloqueyylex"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:88:4: bloqueyylex : YYLEX ABRIRPARENTESIS CERRARPARENTESIS bloqueLlaves ;
    public final void bloqueyylex() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:88:16: ( YYLEX ABRIRPARENTESIS CERRARPARENTESIS bloqueLlaves )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:88:18: YYLEX ABRIRPARENTESIS CERRARPARENTESIS bloqueLlaves
            {
            match(input,YYLEX,FOLLOW_YYLEX_in_bloqueyylex733); 

            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_bloqueyylex735); 

            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_bloqueyylex737); 

            pushFollow(FOLLOW_bloqueLlaves_in_bloqueyylex739);
            bloqueLlaves();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloqueyylex"



    // $ANTLR start "bloque"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:4: bloque : ( buclewhile | condicionif | buclefor | ret | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) ) ;
    public final void bloque() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:11: ( ( buclewhile | condicionif | buclefor | ret | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:13: ( buclewhile | condicionif | buclefor | ret | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:13: ( buclewhile | condicionif | buclefor | ret | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) )
            int alt35=6;
            switch ( input.LA(1) ) {
            case WHILE:
                {
                alt35=1;
                }
                break;
            case IF:
                {
                alt35=2;
                }
                break;
            case FOR:
                {
                alt35=3;
                }
                break;
            case RETORNAR:
                {
                alt35=4;
                }
                break;
            case ELSE:
                {
                alt35=5;
                }
                break;
            case ASTERISCO:
            case BREAK:
            case CHAR:
            case CONTINUE:
            case DOUBLE:
            case IDENT:
            case IDENTMAYUS:
            case IDENTMINUS:
            case INT:
            case INTERVAL:
            case POINTER:
            case PRINTF:
            case REGISTER:
                {
                alt35=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 35, 0, input);

                throw nvae;

            }

            switch (alt35) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:14: buclewhile
                    {
                    pushFollow(FOLLOW_buclewhile_in_bloque750);
                    buclewhile();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:27: condicionif
                    {
                    pushFollow(FOLLOW_condicionif_in_bloque754);
                    condicionif();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:40: buclefor
                    {
                    pushFollow(FOLLOW_buclefor_in_bloque757);
                    buclefor();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:50: ret
                    {
                    pushFollow(FOLLOW_ret_in_bloque760);
                    ret();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:55: reglaelse
                    {
                    pushFollow(FOLLOW_reglaelse_in_bloque763);
                    reglaelse();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:67: ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:67: ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:68: ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:68: ( asignacion | printf | llamadafuncion | BREAK | CONTINUE )
                    int alt34=5;
                    switch ( input.LA(1) ) {
                    case CHAR:
                    case DOUBLE:
                    case INT:
                    case INTERVAL:
                    case POINTER:
                    case REGISTER:
                        {
                        alt34=1;
                        }
                        break;
                    case ASTERISCO:
                        {
                        int LA34_2 = input.LA(2);

                        if ( ((LA34_2 >= IDENT && LA34_2 <= IDENTMINUS)) ) {
                            int LA34_3 = input.LA(3);

                            if ( (LA34_3==ABRIRCORCHETE||LA34_3==COMA||LA34_3==IGUAL||LA34_3==SEPARADOR) ) {
                                alt34=1;
                            }
                            else if ( (LA34_3==ABRIRPARENTESIS) ) {
                                alt34=3;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 34, 3, input);

                                throw nvae;

                            }
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 34, 2, input);

                            throw nvae;

                        }
                        }
                        break;
                    case IDENT:
                    case IDENTMAYUS:
                    case IDENTMINUS:
                        {
                        int LA34_3 = input.LA(2);

                        if ( (LA34_3==ABRIRCORCHETE||LA34_3==COMA||LA34_3==IGUAL||LA34_3==SEPARADOR) ) {
                            alt34=1;
                        }
                        else if ( (LA34_3==ABRIRPARENTESIS) ) {
                            alt34=3;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 34, 3, input);

                            throw nvae;

                        }
                        }
                        break;
                    case PRINTF:
                        {
                        alt34=2;
                        }
                        break;
                    case BREAK:
                        {
                        alt34=4;
                        }
                        break;
                    case CONTINUE:
                        {
                        alt34=5;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 34, 0, input);

                        throw nvae;

                    }

                    switch (alt34) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:69: asignacion
                            {
                            pushFollow(FOLLOW_asignacion_in_bloque769);
                            asignacion();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:80: printf
                            {
                            pushFollow(FOLLOW_printf_in_bloque771);
                            printf();

                            state._fsp--;


                            }
                            break;
                        case 3 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:87: llamadafuncion
                            {
                            pushFollow(FOLLOW_llamadafuncion_in_bloque773);
                            llamadafuncion();

                            state._fsp--;


                            }
                            break;
                        case 4 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:103: BREAK
                            {
                            match(input,BREAK,FOLLOW_BREAK_in_bloque776); 

                            }
                            break;
                        case 5 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:89:109: CONTINUE
                            {
                            match(input,CONTINUE,FOLLOW_CONTINUE_in_bloque778); 

                            }
                            break;

                    }


                    match(input,SEPARADOR,FOLLOW_SEPARADOR_in_bloque781); 

                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloque"



    // $ANTLR start "bloqueLlaves"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:4: bloqueLlaves : ABRIRLLAVE ( buclewhile | condicionif | buclefor | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) )* ( ret )? CERRARLLAVE ;
    public final void bloqueLlaves() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:17: ( ABRIRLLAVE ( buclewhile | condicionif | buclefor | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) )* ( ret )? CERRARLLAVE )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:19: ABRIRLLAVE ( buclewhile | condicionif | buclefor | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) )* ( ret )? CERRARLLAVE
            {
            match(input,ABRIRLLAVE,FOLLOW_ABRIRLLAVE_in_bloqueLlaves793); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:31: ( buclewhile | condicionif | buclefor | reglaelse | ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR ) )*
            loop37:
            do {
                int alt37=6;
                switch ( input.LA(1) ) {
                case WHILE:
                    {
                    alt37=1;
                    }
                    break;
                case IF:
                    {
                    alt37=2;
                    }
                    break;
                case FOR:
                    {
                    alt37=3;
                    }
                    break;
                case ELSE:
                    {
                    alt37=4;
                    }
                    break;
                case ASTERISCO:
                case BREAK:
                case CHAR:
                case CONTINUE:
                case DOUBLE:
                case IDENT:
                case IDENTMAYUS:
                case IDENTMINUS:
                case INT:
                case INTERVAL:
                case POINTER:
                case PRINTF:
                case REGISTER:
                    {
                    alt37=5;
                    }
                    break;

                }

                switch (alt37) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:32: buclewhile
            	    {
            	    pushFollow(FOLLOW_buclewhile_in_bloqueLlaves797);
            	    buclewhile();

            	    state._fsp--;


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:44: condicionif
            	    {
            	    pushFollow(FOLLOW_condicionif_in_bloqueLlaves800);
            	    condicionif();

            	    state._fsp--;


            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:57: buclefor
            	    {
            	    pushFollow(FOLLOW_buclefor_in_bloqueLlaves803);
            	    buclefor();

            	    state._fsp--;


            	    }
            	    break;
            	case 4 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:67: reglaelse
            	    {
            	    pushFollow(FOLLOW_reglaelse_in_bloqueLlaves806);
            	    reglaelse();

            	    state._fsp--;


            	    }
            	    break;
            	case 5 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:79: ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR )
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:79: ( ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR )
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:80: ( asignacion | printf | llamadafuncion | BREAK | CONTINUE ) SEPARADOR
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:80: ( asignacion | printf | llamadafuncion | BREAK | CONTINUE )
            	    int alt36=5;
            	    switch ( input.LA(1) ) {
            	    case CHAR:
            	    case DOUBLE:
            	    case INT:
            	    case INTERVAL:
            	    case POINTER:
            	    case REGISTER:
            	        {
            	        alt36=1;
            	        }
            	        break;
            	    case ASTERISCO:
            	        {
            	        int LA36_2 = input.LA(2);

            	        if ( ((LA36_2 >= IDENT && LA36_2 <= IDENTMINUS)) ) {
            	            int LA36_3 = input.LA(3);

            	            if ( (LA36_3==ABRIRCORCHETE||LA36_3==COMA||LA36_3==IGUAL||LA36_3==SEPARADOR) ) {
            	                alt36=1;
            	            }
            	            else if ( (LA36_3==ABRIRPARENTESIS) ) {
            	                alt36=3;
            	            }
            	            else {
            	                NoViableAltException nvae =
            	                    new NoViableAltException("", 36, 3, input);

            	                throw nvae;

            	            }
            	        }
            	        else {
            	            NoViableAltException nvae =
            	                new NoViableAltException("", 36, 2, input);

            	            throw nvae;

            	        }
            	        }
            	        break;
            	    case IDENT:
            	    case IDENTMAYUS:
            	    case IDENTMINUS:
            	        {
            	        int LA36_3 = input.LA(2);

            	        if ( (LA36_3==ABRIRCORCHETE||LA36_3==COMA||LA36_3==IGUAL||LA36_3==SEPARADOR) ) {
            	            alt36=1;
            	        }
            	        else if ( (LA36_3==ABRIRPARENTESIS) ) {
            	            alt36=3;
            	        }
            	        else {
            	            NoViableAltException nvae =
            	                new NoViableAltException("", 36, 3, input);

            	            throw nvae;

            	        }
            	        }
            	        break;
            	    case PRINTF:
            	        {
            	        alt36=2;
            	        }
            	        break;
            	    case BREAK:
            	        {
            	        alt36=4;
            	        }
            	        break;
            	    case CONTINUE:
            	        {
            	        alt36=5;
            	        }
            	        break;
            	    default:
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 36, 0, input);

            	        throw nvae;

            	    }

            	    switch (alt36) {
            	        case 1 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:81: asignacion
            	            {
            	            pushFollow(FOLLOW_asignacion_in_bloqueLlaves812);
            	            asignacion();

            	            state._fsp--;


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:92: printf
            	            {
            	            pushFollow(FOLLOW_printf_in_bloqueLlaves814);
            	            printf();

            	            state._fsp--;


            	            }
            	            break;
            	        case 3 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:99: llamadafuncion
            	            {
            	            pushFollow(FOLLOW_llamadafuncion_in_bloqueLlaves816);
            	            llamadafuncion();

            	            state._fsp--;


            	            }
            	            break;
            	        case 4 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:115: BREAK
            	            {
            	            match(input,BREAK,FOLLOW_BREAK_in_bloqueLlaves819); 

            	            }
            	            break;
            	        case 5 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:121: CONTINUE
            	            {
            	            match(input,CONTINUE,FOLLOW_CONTINUE_in_bloqueLlaves821); 

            	            }
            	            break;

            	    }


            	    match(input,SEPARADOR,FOLLOW_SEPARADOR_in_bloqueLlaves824); 

            	    }


            	    }
            	    break;

            	default :
            	    break loop37;
                }
            } while (true);


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:144: ( ret )?
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( (LA38_0==RETORNAR) ) {
                alt38=1;
            }
            switch (alt38) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:90:144: ret
                    {
                    pushFollow(FOLLOW_ret_in_bloqueLlaves829);
                    ret();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARLLAVE,FOLLOW_CERRARLLAVE_in_bloqueLlaves833); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloqueLlaves"



    // $ANTLR start "buclefor"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:93:4: buclefor : FOR ABRIRPARENTESIS dentrofor CERRARPARENTESIS ( bloque | bloqueLlaves ) ;
    public final void buclefor() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:93:13: ( FOR ABRIRPARENTESIS dentrofor CERRARPARENTESIS ( bloque | bloqueLlaves ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:93:15: FOR ABRIRPARENTESIS dentrofor CERRARPARENTESIS ( bloque | bloqueLlaves )
            {
            match(input,FOR,FOLLOW_FOR_in_buclefor847); 

            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_buclefor849); 

            pushFollow(FOLLOW_dentrofor_in_buclefor851);
            dentrofor();

            state._fsp--;


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_buclefor853); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:93:62: ( bloque | bloqueLlaves )
            int alt39=2;
            int LA39_0 = input.LA(1);

            if ( (LA39_0==ASTERISCO||LA39_0==BREAK||LA39_0==CHAR||LA39_0==CONTINUE||(LA39_0 >= DOUBLE && LA39_0 <= IF)||(LA39_0 >= INT && LA39_0 <= INTERVAL)||LA39_0==POINTER||LA39_0==PRINTF||(LA39_0 >= REGISTER && LA39_0 <= RETORNAR)||LA39_0==WHILE) ) {
                alt39=1;
            }
            else if ( (LA39_0==ABRIRLLAVE) ) {
                alt39=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 39, 0, input);

                throw nvae;

            }
            switch (alt39) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:93:63: bloque
                    {
                    pushFollow(FOLLOW_bloque_in_buclefor856);
                    bloque();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:93:70: bloqueLlaves
                    {
                    pushFollow(FOLLOW_bloqueLlaves_in_buclefor858);
                    bloqueLlaves();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "buclefor"



    // $ANTLR start "incremento"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:94:5: incremento : ( INCREMENTO identificadores | identificadores INCREMENTO );
    public final void incremento() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:94:16: ( INCREMENTO identificadores | identificadores INCREMENTO )
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( (LA40_0==INCREMENTO) ) {
                alt40=1;
            }
            else if ( (LA40_0==ASTERISCO||(LA40_0 >= IDENT && LA40_0 <= IDENTMINUS)) ) {
                alt40=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 40, 0, input);

                throw nvae;

            }
            switch (alt40) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:94:18: INCREMENTO identificadores
                    {
                    match(input,INCREMENTO,FOLLOW_INCREMENTO_in_incremento871); 

                    pushFollow(FOLLOW_identificadores_in_incremento873);
                    identificadores();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:94:47: identificadores INCREMENTO
                    {
                    pushFollow(FOLLOW_identificadores_in_incremento877);
                    identificadores();

                    state._fsp--;


                    match(input,INCREMENTO,FOLLOW_INCREMENTO_in_incremento879); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "incremento"



    // $ANTLR start "decremento"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:95:5: decremento : ( DECREMENTO identificadores | identificadores DECREMENTO );
    public final void decremento() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:95:16: ( DECREMENTO identificadores | identificadores DECREMENTO )
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==DECREMENTO) ) {
                alt41=1;
            }
            else if ( (LA41_0==ASTERISCO||(LA41_0 >= IDENT && LA41_0 <= IDENTMINUS)) ) {
                alt41=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 41, 0, input);

                throw nvae;

            }
            switch (alt41) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:95:18: DECREMENTO identificadores
                    {
                    match(input,DECREMENTO,FOLLOW_DECREMENTO_in_decremento890); 

                    pushFollow(FOLLOW_identificadores_in_decremento892);
                    identificadores();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:95:47: identificadores DECREMENTO
                    {
                    pushFollow(FOLLOW_identificadores_in_decremento896);
                    identificadores();

                    state._fsp--;


                    match(input,DECREMENTO,FOLLOW_DECREMENTO_in_decremento898); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "decremento"



    // $ANTLR start "dentrofor"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:5: dentrofor : ( ( asignacion SEPARADOR ) | SEPARADOR ) ( condicionfor )? SEPARADOR ( incremento | decremento )? ( COMA )? ( asignacion )? ;
    public final void dentrofor() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:15: ( ( ( asignacion SEPARADOR ) | SEPARADOR ) ( condicionfor )? SEPARADOR ( incremento | decremento )? ( COMA )? ( asignacion )? )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:18: ( ( asignacion SEPARADOR ) | SEPARADOR ) ( condicionfor )? SEPARADOR ( incremento | decremento )? ( COMA )? ( asignacion )?
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:18: ( ( asignacion SEPARADOR ) | SEPARADOR )
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==ASTERISCO||LA42_0==CHAR||LA42_0==DOUBLE||(LA42_0 >= IDENT && LA42_0 <= IDENTMINUS)||(LA42_0 >= INT && LA42_0 <= INTERVAL)||LA42_0==POINTER||LA42_0==REGISTER) ) {
                alt42=1;
            }
            else if ( (LA42_0==SEPARADOR) ) {
                alt42=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 42, 0, input);

                throw nvae;

            }
            switch (alt42) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:19: ( asignacion SEPARADOR )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:19: ( asignacion SEPARADOR )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:20: asignacion SEPARADOR
                    {
                    pushFollow(FOLLOW_asignacion_in_dentrofor912);
                    asignacion();

                    state._fsp--;


                    match(input,SEPARADOR,FOLLOW_SEPARADOR_in_dentrofor914); 

                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:44: SEPARADOR
                    {
                    match(input,SEPARADOR,FOLLOW_SEPARADOR_in_dentrofor919); 

                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:55: ( condicionfor )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==ABRIRPARENTESIS) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:55: condicionfor
                    {
                    pushFollow(FOLLOW_condicionfor_in_dentrofor922);
                    condicionfor();

                    state._fsp--;


                    }
                    break;

            }


            match(input,SEPARADOR,FOLLOW_SEPARADOR_in_dentrofor925); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:79: ( incremento | decremento )?
            int alt44=3;
            switch ( input.LA(1) ) {
                case INCREMENTO:
                    {
                    alt44=1;
                    }
                    break;
                case ASTERISCO:
                    {
                    int LA44_2 = input.LA(2);

                    if ( ((LA44_2 >= IDENT && LA44_2 <= IDENTMINUS)) ) {
                        int LA44_3 = input.LA(3);

                        if ( (LA44_3==INCREMENTO) ) {
                            alt44=1;
                        }
                        else if ( (LA44_3==DECREMENTO) ) {
                            alt44=2;
                        }
                    }
                    }
                    break;
                case IDENT:
                case IDENTMAYUS:
                case IDENTMINUS:
                    {
                    int LA44_3 = input.LA(2);

                    if ( (LA44_3==INCREMENTO) ) {
                        alt44=1;
                    }
                    else if ( (LA44_3==DECREMENTO) ) {
                        alt44=2;
                    }
                    }
                    break;
                case DECREMENTO:
                    {
                    alt44=2;
                    }
                    break;
            }

            switch (alt44) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:80: incremento
                    {
                    pushFollow(FOLLOW_incremento_in_dentrofor928);
                    incremento();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:91: decremento
                    {
                    pushFollow(FOLLOW_decremento_in_dentrofor930);
                    decremento();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:104: ( COMA )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==COMA) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:104: COMA
                    {
                    match(input,COMA,FOLLOW_COMA_in_dentrofor934); 

                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:110: ( asignacion )?
            int alt46=2;
            int LA46_0 = input.LA(1);

            if ( (LA46_0==ASTERISCO||LA46_0==CHAR||LA46_0==DOUBLE||(LA46_0 >= IDENT && LA46_0 <= IDENTMINUS)||(LA46_0 >= INT && LA46_0 <= INTERVAL)||LA46_0==POINTER||LA46_0==REGISTER) ) {
                alt46=1;
            }
            switch (alt46) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:96:110: asignacion
                    {
                    pushFollow(FOLLOW_asignacion_in_dentrofor937);
                    asignacion();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dentrofor"



    // $ANTLR start "condicionfor"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:5: condicionfor : operacionparen ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) identificadores ;
    public final void condicionfor() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:18: ( operacionparen ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) identificadores )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:20: operacionparen ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) identificadores
            {
            pushFollow(FOLLOW_operacionparen_in_condicionfor949);
            operacionparen();

            state._fsp--;


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:35: ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL )
            int alt48=3;
            switch ( input.LA(1) ) {
            case ABRIRANGULO:
            case CERRARANGULO:
                {
                alt48=1;
                }
                break;
            case DISTINTO:
                {
                alt48=2;
                }
                break;
            case IGUAL:
                {
                alt48=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 48, 0, input);

                throw nvae;

            }

            switch (alt48) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:36: ( angulos ( IGUAL )? )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:36: ( angulos ( IGUAL )? )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:37: angulos ( IGUAL )?
                    {
                    pushFollow(FOLLOW_angulos_in_condicionfor953);
                    angulos();

                    state._fsp--;


                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:45: ( IGUAL )?
                    int alt47=2;
                    int LA47_0 = input.LA(1);

                    if ( (LA47_0==IGUAL) ) {
                        alt47=1;
                    }
                    switch (alt47) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:45: IGUAL
                            {
                            match(input,IGUAL,FOLLOW_IGUAL_in_condicionfor955); 

                            }
                            break;

                    }


                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:54: DISTINTO
                    {
                    match(input,DISTINTO,FOLLOW_DISTINTO_in_condicionfor960); 

                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:97:65: IGUAL
                    {
                    match(input,IGUAL,FOLLOW_IGUAL_in_condicionfor964); 

                    }
                    break;

            }


            pushFollow(FOLLOW_identificadores_in_condicionfor967);
            identificadores();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "condicionfor"



    // $ANTLR start "buclewhile"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:99:5: buclewhile : WHILE ABRIRPARENTESIS condiciones CERRARPARENTESIS ( bloque | bloqueLlaves ) ;
    public final void buclewhile() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:99:16: ( WHILE ABRIRPARENTESIS condiciones CERRARPARENTESIS ( bloque | bloqueLlaves ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:99:18: WHILE ABRIRPARENTESIS condiciones CERRARPARENTESIS ( bloque | bloqueLlaves )
            {
            match(input,WHILE,FOLLOW_WHILE_in_buclewhile979); 

            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_buclewhile981); 

            pushFollow(FOLLOW_condiciones_in_buclewhile983);
            condiciones();

            state._fsp--;


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_buclewhile985); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:99:69: ( bloque | bloqueLlaves )
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( (LA49_0==ASTERISCO||LA49_0==BREAK||LA49_0==CHAR||LA49_0==CONTINUE||(LA49_0 >= DOUBLE && LA49_0 <= IF)||(LA49_0 >= INT && LA49_0 <= INTERVAL)||LA49_0==POINTER||LA49_0==PRINTF||(LA49_0 >= REGISTER && LA49_0 <= RETORNAR)||LA49_0==WHILE) ) {
                alt49=1;
            }
            else if ( (LA49_0==ABRIRLLAVE) ) {
                alt49=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 49, 0, input);

                throw nvae;

            }
            switch (alt49) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:99:70: bloque
                    {
                    pushFollow(FOLLOW_bloque_in_buclewhile988);
                    bloque();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:99:78: bloqueLlaves
                    {
                    pushFollow(FOLLOW_bloqueLlaves_in_buclewhile991);
                    bloqueLlaves();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "buclewhile"



    // $ANTLR start "condicionif"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:100:5: condicionif : IF ABRIRPARENTESIS condiciones CERRARPARENTESIS ( bloque | bloqueLlaves ) ;
    public final void condicionif() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:100:17: ( IF ABRIRPARENTESIS condiciones CERRARPARENTESIS ( bloque | bloqueLlaves ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:100:19: IF ABRIRPARENTESIS condiciones CERRARPARENTESIS ( bloque | bloqueLlaves )
            {
            contador++;flagelse = true;

            match(input,IF,FOLLOW_IF_in_condicionif1005); 

            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_condicionif1008); 

            pushFollow(FOLLOW_condiciones_in_condicionif1010);
            condiciones();

            state._fsp--;


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_condicionif1012); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:100:98: ( bloque | bloqueLlaves )
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( (LA50_0==ASTERISCO||LA50_0==BREAK||LA50_0==CHAR||LA50_0==CONTINUE||(LA50_0 >= DOUBLE && LA50_0 <= IF)||(LA50_0 >= INT && LA50_0 <= INTERVAL)||LA50_0==POINTER||LA50_0==PRINTF||(LA50_0 >= REGISTER && LA50_0 <= RETORNAR)||LA50_0==WHILE) ) {
                alt50=1;
            }
            else if ( (LA50_0==ABRIRLLAVE) ) {
                alt50=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 50, 0, input);

                throw nvae;

            }
            switch (alt50) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:100:99: bloque
                    {
                    pushFollow(FOLLOW_bloque_in_condicionif1015);
                    bloque();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:100:107: bloqueLlaves
                    {
                    pushFollow(FOLLOW_bloqueLlaves_in_condicionif1018);
                    bloqueLlaves();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "condicionif"



    // $ANTLR start "condiciones"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:8: condiciones : ( condicion ) ( ( operadoreslogicos | COMPARACION ) ( condicion ) )* ;
    public final void condiciones() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:20: ( ( condicion ) ( ( operadoreslogicos | COMPARACION ) ( condicion ) )* )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:23: ( condicion ) ( ( operadoreslogicos | COMPARACION ) ( condicion ) )*
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:23: ( condicion )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:24: condicion
            {
            pushFollow(FOLLOW_condicion_in_condiciones1035);
            condicion();

            state._fsp--;


            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:35: ( ( operadoreslogicos | COMPARACION ) ( condicion ) )*
            loop52:
            do {
                int alt52=2;
                int LA52_0 = input.LA(1);

                if ( ((LA52_0 >= AND && LA52_0 <= ANDLOGICO)||LA52_0==COMPARACION||(LA52_0 >= OR && LA52_0 <= ORLOGICO)) ) {
                    alt52=1;
                }


                switch (alt52) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:36: ( operadoreslogicos | COMPARACION ) ( condicion )
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:36: ( operadoreslogicos | COMPARACION )
            	    int alt51=2;
            	    int LA51_0 = input.LA(1);

            	    if ( ((LA51_0 >= AND && LA51_0 <= ANDLOGICO)||(LA51_0 >= OR && LA51_0 <= ORLOGICO)) ) {
            	        alt51=1;
            	    }
            	    else if ( (LA51_0==COMPARACION) ) {
            	        alt51=2;
            	    }
            	    else {
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 51, 0, input);

            	        throw nvae;

            	    }
            	    switch (alt51) {
            	        case 1 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:37: operadoreslogicos
            	            {
            	            pushFollow(FOLLOW_operadoreslogicos_in_condiciones1040);
            	            operadoreslogicos();

            	            state._fsp--;


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:55: COMPARACION
            	            {
            	            match(input,COMPARACION,FOLLOW_COMPARACION_in_condiciones1042); 

            	            }
            	            break;

            	    }


            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:68: ( condicion )
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:101:69: condicion
            	    {
            	    pushFollow(FOLLOW_condicion_in_condiciones1046);
            	    condicion();

            	    state._fsp--;


            	    }


            	    }
            	    break;

            	default :
            	    break loop52;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "condiciones"



    // $ANTLR start "condicion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:7: condicion : ( ( EXCLAMACION identificadores ) | ( ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )* ) | ( ( EXCLAMACION )? llamadafuncion ) | ( incremento | decremento ) ) ;
    public final void condicion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:17: ( ( ( EXCLAMACION identificadores ) | ( ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )* ) | ( ( EXCLAMACION )? llamadafuncion ) | ( incremento | decremento ) ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:21: ( ( EXCLAMACION identificadores ) | ( ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )* ) | ( ( EXCLAMACION )? llamadafuncion ) | ( incremento | decremento ) )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:21: ( ( EXCLAMACION identificadores ) | ( ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )* ) | ( ( EXCLAMACION )? llamadafuncion ) | ( incremento | decremento ) )
            int alt60=4;
            switch ( input.LA(1) ) {
            case EXCLAMACION:
                {
                int LA60_1 = input.LA(2);

                if ( (LA60_1==ASTERISCO) ) {
                    int LA60_6 = input.LA(3);

                    if ( ((LA60_6 >= IDENT && LA60_6 <= IDENTMINUS)) ) {
                        int LA60_7 = input.LA(4);

                        if ( ((LA60_7 >= AND && LA60_7 <= ANDLOGICO)||LA60_7==CERRARPARENTESIS||LA60_7==COMPARACION||(LA60_7 >= OR && LA60_7 <= ORLOGICO)||LA60_7==INTERROGANTE) ) {
                            alt60=1;
                        }
                        else if ( (LA60_7==ABRIRPARENTESIS) ) {
                            alt60=3;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 60, 7, input);

                            throw nvae;

                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 60, 6, input);

                        throw nvae;

                    }
                }
                else if ( ((LA60_1 >= IDENT && LA60_1 <= IDENTMINUS)) ) {
                    int LA60_7 = input.LA(3);

                    if ( ((LA60_7 >= AND && LA60_7 <= ANDLOGICO)||LA60_7==CERRARPARENTESIS||LA60_7==COMPARACION||(LA60_7 >= OR && LA60_7 <= ORLOGICO)||LA60_7==INTERROGANTE) ) {
                        alt60=1;
                    }
                    else if ( (LA60_7==ABRIRPARENTESIS) ) {
                        alt60=3;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 60, 7, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 60, 1, input);

                    throw nvae;

                }
                }
                break;
            case ABRIRPARENTESIS:
            case CADENA:
            case CARACTER:
            case NUMERO:
            case SIGNAL:
                {
                alt60=2;
                }
                break;
            case ASTERISCO:
                {
                int LA60_3 = input.LA(2);

                if ( ((LA60_3 >= IDENT && LA60_3 <= IDENTMINUS)) ) {
                    switch ( input.LA(3) ) {
                    case ABRIRANGULO:
                    case AND:
                    case ANDLOGICO:
                    case ASTERISCO:
                    case CERRARANGULO:
                    case CERRARPARENTESIS:
                    case COMPARACION:
                    case IGUAL:
                    case MAS:
                    case MENOS:
                    case OR:
                    case ORLOGICO:
                    case SLASH:
                    case DISTINTO:
                    case INTERROGANTE:
                        {
                        alt60=2;
                        }
                        break;
                    case ABRIRPARENTESIS:
                        {
                        alt60=3;
                        }
                        break;
                    case DECREMENTO:
                    case INCREMENTO:
                        {
                        alt60=4;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 60, 4, input);

                        throw nvae;

                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 60, 3, input);

                    throw nvae;

                }
                }
                break;
            case IDENT:
            case IDENTMAYUS:
            case IDENTMINUS:
                {
                switch ( input.LA(2) ) {
                case ABRIRANGULO:
                case AND:
                case ANDLOGICO:
                case ASTERISCO:
                case CERRARANGULO:
                case CERRARPARENTESIS:
                case COMPARACION:
                case IGUAL:
                case MAS:
                case MENOS:
                case OR:
                case ORLOGICO:
                case SLASH:
                case DISTINTO:
                case INTERROGANTE:
                    {
                    alt60=2;
                    }
                    break;
                case ABRIRPARENTESIS:
                    {
                    alt60=3;
                    }
                    break;
                case DECREMENTO:
                case INCREMENTO:
                    {
                    alt60=4;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 60, 4, input);

                    throw nvae;

                }

                }
                break;
            case DECREMENTO:
            case INCREMENTO:
                {
                alt60=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 60, 0, input);

                throw nvae;

            }

            switch (alt60) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:22: ( EXCLAMACION identificadores )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:22: ( EXCLAMACION identificadores )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:107:23: EXCLAMACION identificadores
                    {
                    match(input,EXCLAMACION,FOLLOW_EXCLAMACION_in_condicion1071); 

                    pushFollow(FOLLOW_identificadores_in_condicion1073);
                    identificadores();

                    state._fsp--;


                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:10: ( ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )* )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:10: ( ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )* )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:11: ( operacionparen | operacion ) ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )*
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:11: ( operacionparen | operacion )
                    int alt53=2;
                    int LA53_0 = input.LA(1);

                    if ( (LA53_0==ABRIRPARENTESIS) ) {
                        alt53=1;
                    }
                    else if ( (LA53_0==ASTERISCO||(LA53_0 >= CADENA && LA53_0 <= CARACTER)||(LA53_0 >= IDENT && LA53_0 <= IDENTMINUS)||LA53_0==NUMERO||LA53_0==SIGNAL) ) {
                        alt53=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 53, 0, input);

                        throw nvae;

                    }
                    switch (alt53) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:12: operacionparen
                            {
                            pushFollow(FOLLOW_operacionparen_in_condicion1087);
                            operacionparen();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:27: operacion
                            {
                            pushFollow(FOLLOW_operacion_in_condicion1089);
                            operacion();

                            state._fsp--;


                            }
                            break;

                    }


                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:38: ( ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion ) )*
                    loop57:
                    do {
                        int alt57=2;
                        int LA57_0 = input.LA(1);

                        if ( (LA57_0==ABRIRANGULO||LA57_0==CERRARANGULO||LA57_0==IGUAL||LA57_0==DISTINTO) ) {
                            alt57=1;
                        }


                        switch (alt57) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:39: ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL ) ( operacionparen | operacion | llamadafuncion )
                    	    {
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:39: ( ( angulos ( IGUAL )? ) | DISTINTO | IGUAL )
                    	    int alt55=3;
                    	    switch ( input.LA(1) ) {
                    	    case ABRIRANGULO:
                    	    case CERRARANGULO:
                    	        {
                    	        alt55=1;
                    	        }
                    	        break;
                    	    case DISTINTO:
                    	        {
                    	        alt55=2;
                    	        }
                    	        break;
                    	    case IGUAL:
                    	        {
                    	        alt55=3;
                    	        }
                    	        break;
                    	    default:
                    	        NoViableAltException nvae =
                    	            new NoViableAltException("", 55, 0, input);

                    	        throw nvae;

                    	    }

                    	    switch (alt55) {
                    	        case 1 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:40: ( angulos ( IGUAL )? )
                    	            {
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:40: ( angulos ( IGUAL )? )
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:41: angulos ( IGUAL )?
                    	            {
                    	            pushFollow(FOLLOW_angulos_in_condicion1095);
                    	            angulos();

                    	            state._fsp--;


                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:49: ( IGUAL )?
                    	            int alt54=2;
                    	            int LA54_0 = input.LA(1);

                    	            if ( (LA54_0==IGUAL) ) {
                    	                alt54=1;
                    	            }
                    	            switch (alt54) {
                    	                case 1 :
                    	                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:49: IGUAL
                    	                    {
                    	                    match(input,IGUAL,FOLLOW_IGUAL_in_condicion1097); 

                    	                    }
                    	                    break;

                    	            }


                    	            }


                    	            }
                    	            break;
                    	        case 2 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:58: DISTINTO
                    	            {
                    	            match(input,DISTINTO,FOLLOW_DISTINTO_in_condicion1102); 

                    	            }
                    	            break;
                    	        case 3 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:69: IGUAL
                    	            {
                    	            match(input,IGUAL,FOLLOW_IGUAL_in_condicion1106); 

                    	            }
                    	            break;

                    	    }


                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:76: ( operacionparen | operacion | llamadafuncion )
                    	    int alt56=3;
                    	    switch ( input.LA(1) ) {
                    	    case ABRIRPARENTESIS:
                    	        {
                    	        alt56=1;
                    	        }
                    	        break;
                    	    case CADENA:
                    	    case CARACTER:
                    	    case NUMERO:
                    	    case SIGNAL:
                    	        {
                    	        alt56=2;
                    	        }
                    	        break;
                    	    case ASTERISCO:
                    	        {
                    	        int LA56_3 = input.LA(2);

                    	        if ( ((LA56_3 >= IDENT && LA56_3 <= IDENTMINUS)) ) {
                    	            int LA56_4 = input.LA(3);

                    	            if ( (LA56_4==ABRIRANGULO||(LA56_4 >= AND && LA56_4 <= ASTERISCO)||LA56_4==CERRARANGULO||LA56_4==CERRARPARENTESIS||LA56_4==COMPARACION||LA56_4==IGUAL||(LA56_4 >= MAS && LA56_4 <= MENOS)||(LA56_4 >= OR && LA56_4 <= ORLOGICO)||LA56_4==SLASH||LA56_4==DISTINTO||LA56_4==INTERROGANTE) ) {
                    	                alt56=2;
                    	            }
                    	            else if ( (LA56_4==ABRIRPARENTESIS) ) {
                    	                alt56=3;
                    	            }
                    	            else {
                    	                NoViableAltException nvae =
                    	                    new NoViableAltException("", 56, 4, input);

                    	                throw nvae;

                    	            }
                    	        }
                    	        else {
                    	            NoViableAltException nvae =
                    	                new NoViableAltException("", 56, 3, input);

                    	            throw nvae;

                    	        }
                    	        }
                    	        break;
                    	    case IDENT:
                    	    case IDENTMAYUS:
                    	    case IDENTMINUS:
                    	        {
                    	        int LA56_4 = input.LA(2);

                    	        if ( (LA56_4==ABRIRANGULO||(LA56_4 >= AND && LA56_4 <= ASTERISCO)||LA56_4==CERRARANGULO||LA56_4==CERRARPARENTESIS||LA56_4==COMPARACION||LA56_4==IGUAL||(LA56_4 >= MAS && LA56_4 <= MENOS)||(LA56_4 >= OR && LA56_4 <= ORLOGICO)||LA56_4==SLASH||LA56_4==DISTINTO||LA56_4==INTERROGANTE) ) {
                    	            alt56=2;
                    	        }
                    	        else if ( (LA56_4==ABRIRPARENTESIS) ) {
                    	            alt56=3;
                    	        }
                    	        else {
                    	            NoViableAltException nvae =
                    	                new NoViableAltException("", 56, 4, input);

                    	            throw nvae;

                    	        }
                    	        }
                    	        break;
                    	    default:
                    	        NoViableAltException nvae =
                    	            new NoViableAltException("", 56, 0, input);

                    	        throw nvae;

                    	    }

                    	    switch (alt56) {
                    	        case 1 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:77: operacionparen
                    	            {
                    	            pushFollow(FOLLOW_operacionparen_in_condicion1110);
                    	            operacionparen();

                    	            state._fsp--;


                    	            }
                    	            break;
                    	        case 2 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:92: operacion
                    	            {
                    	            pushFollow(FOLLOW_operacion_in_condicion1112);
                    	            operacion();

                    	            state._fsp--;


                    	            }
                    	            break;
                    	        case 3 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:108:102: llamadafuncion
                    	            {
                    	            pushFollow(FOLLOW_llamadafuncion_in_condicion1114);
                    	            llamadafuncion();

                    	            state._fsp--;


                    	            }
                    	            break;

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop57;
                        }
                    } while (true);


                    }


                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:109:10: ( ( EXCLAMACION )? llamadafuncion )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:109:10: ( ( EXCLAMACION )? llamadafuncion )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:109:11: ( EXCLAMACION )? llamadafuncion
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:109:11: ( EXCLAMACION )?
                    int alt58=2;
                    int LA58_0 = input.LA(1);

                    if ( (LA58_0==EXCLAMACION) ) {
                        alt58=1;
                    }
                    switch (alt58) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:109:11: EXCLAMACION
                            {
                            match(input,EXCLAMACION,FOLLOW_EXCLAMACION_in_condicion1131); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_llamadafuncion_in_condicion1134);
                    llamadafuncion();

                    state._fsp--;


                    }


                    }
                    break;
                case 4 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:110:10: ( incremento | decremento )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:110:10: ( incremento | decremento )
                    int alt59=2;
                    switch ( input.LA(1) ) {
                    case INCREMENTO:
                        {
                        alt59=1;
                        }
                        break;
                    case ASTERISCO:
                        {
                        int LA59_2 = input.LA(2);

                        if ( ((LA59_2 >= IDENT && LA59_2 <= IDENTMINUS)) ) {
                            int LA59_3 = input.LA(3);

                            if ( (LA59_3==INCREMENTO) ) {
                                alt59=1;
                            }
                            else if ( (LA59_3==DECREMENTO) ) {
                                alt59=2;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 59, 3, input);

                                throw nvae;

                            }
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 59, 2, input);

                            throw nvae;

                        }
                        }
                        break;
                    case IDENT:
                    case IDENTMAYUS:
                    case IDENTMINUS:
                        {
                        int LA59_3 = input.LA(2);

                        if ( (LA59_3==INCREMENTO) ) {
                            alt59=1;
                        }
                        else if ( (LA59_3==DECREMENTO) ) {
                            alt59=2;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 59, 3, input);

                            throw nvae;

                        }
                        }
                        break;
                    case DECREMENTO:
                        {
                        alt59=2;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 59, 0, input);

                        throw nvae;

                    }

                    switch (alt59) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:110:11: incremento
                            {
                            pushFollow(FOLLOW_incremento_in_condicion1148);
                            incremento();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:110:22: decremento
                            {
                            pushFollow(FOLLOW_decremento_in_condicion1150);
                            decremento();

                            state._fsp--;


                            }
                            break;

                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "condicion"



    // $ANTLR start "operacionparen"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:7: operacionparen : ABRIRPARENTESIS ( ( ( parametros | identificadores ) operadores ( identificadores | parametros ) ) | asignacion ) CERRARPARENTESIS ;
    public final void operacionparen() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:22: ( ABRIRPARENTESIS ( ( ( parametros | identificadores ) operadores ( identificadores | parametros ) ) | asignacion ) CERRARPARENTESIS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:24: ABRIRPARENTESIS ( ( ( parametros | identificadores ) operadores ( identificadores | parametros ) ) | asignacion ) CERRARPARENTESIS
            {
            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_operacionparen1171); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:40: ( ( ( parametros | identificadores ) operadores ( identificadores | parametros ) ) | asignacion )
            int alt63=2;
            switch ( input.LA(1) ) {
            case CADENA:
            case CARACTER:
            case NUMERO:
            case SIGNAL:
                {
                alt63=1;
                }
                break;
            case ASTERISCO:
                {
                int LA63_2 = input.LA(2);

                if ( ((LA63_2 >= IDENT && LA63_2 <= IDENTMINUS)) ) {
                    int LA63_3 = input.LA(3);

                    if ( (LA63_3==ASTERISCO||(LA63_3 >= MAS && LA63_3 <= MENOS)||LA63_3==SLASH) ) {
                        alt63=1;
                    }
                    else if ( (LA63_3==ABRIRCORCHETE||LA63_3==CERRARPARENTESIS||LA63_3==COMA||LA63_3==IGUAL) ) {
                        alt63=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 63, 3, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 63, 2, input);

                    throw nvae;

                }
                }
                break;
            case IDENT:
            case IDENTMAYUS:
            case IDENTMINUS:
                {
                int LA63_3 = input.LA(2);

                if ( (LA63_3==ASTERISCO||(LA63_3 >= MAS && LA63_3 <= MENOS)||LA63_3==SLASH) ) {
                    alt63=1;
                }
                else if ( (LA63_3==ABRIRCORCHETE||LA63_3==CERRARPARENTESIS||LA63_3==COMA||LA63_3==IGUAL) ) {
                    alt63=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 63, 3, input);

                    throw nvae;

                }
                }
                break;
            case CHAR:
            case DOUBLE:
            case INT:
            case INTERVAL:
            case POINTER:
            case REGISTER:
                {
                alt63=2;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 63, 0, input);

                throw nvae;

            }

            switch (alt63) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:41: ( ( parametros | identificadores ) operadores ( identificadores | parametros ) )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:41: ( ( parametros | identificadores ) operadores ( identificadores | parametros ) )
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:42: ( parametros | identificadores ) operadores ( identificadores | parametros )
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:42: ( parametros | identificadores )
                    int alt61=2;
                    int LA61_0 = input.LA(1);

                    if ( ((LA61_0 >= CADENA && LA61_0 <= CARACTER)||LA61_0==NUMERO||LA61_0==SIGNAL) ) {
                        alt61=1;
                    }
                    else if ( (LA61_0==ASTERISCO||(LA61_0 >= IDENT && LA61_0 <= IDENTMINUS)) ) {
                        alt61=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 61, 0, input);

                        throw nvae;

                    }
                    switch (alt61) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:43: parametros
                            {
                            pushFollow(FOLLOW_parametros_in_operacionparen1176);
                            parametros();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:54: identificadores
                            {
                            pushFollow(FOLLOW_identificadores_in_operacionparen1178);
                            identificadores();

                            state._fsp--;


                            }
                            break;

                    }


                    pushFollow(FOLLOW_operadores_in_operacionparen1181);
                    operadores();

                    state._fsp--;


                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:83: ( identificadores | parametros )
                    int alt62=2;
                    int LA62_0 = input.LA(1);

                    if ( (LA62_0==ASTERISCO||(LA62_0 >= IDENT && LA62_0 <= IDENTMINUS)) ) {
                        alt62=1;
                    }
                    else if ( ((LA62_0 >= CADENA && LA62_0 <= CARACTER)||LA62_0==NUMERO||LA62_0==SIGNAL) ) {
                        alt62=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 62, 0, input);

                        throw nvae;

                    }
                    switch (alt62) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:84: identificadores
                            {
                            pushFollow(FOLLOW_identificadores_in_operacionparen1185);
                            identificadores();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:100: parametros
                            {
                            pushFollow(FOLLOW_parametros_in_operacionparen1187);
                            parametros();

                            state._fsp--;


                            }
                            break;

                    }


                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:111:113: asignacion
                    {
                    pushFollow(FOLLOW_asignacion_in_operacionparen1191);
                    asignacion();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_operacionparen1194); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "operacionparen"



    // $ANTLR start "operacion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:7: operacion : ( ( parametros | identificadores ) ( operadores ( identificadores | parametros ) )* ) ;
    public final void operacion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:17: ( ( ( parametros | identificadores ) ( operadores ( identificadores | parametros ) )* ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:19: ( ( parametros | identificadores ) ( operadores ( identificadores | parametros ) )* )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:19: ( ( parametros | identificadores ) ( operadores ( identificadores | parametros ) )* )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:20: ( parametros | identificadores ) ( operadores ( identificadores | parametros ) )*
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:20: ( parametros | identificadores )
            int alt64=2;
            int LA64_0 = input.LA(1);

            if ( ((LA64_0 >= CADENA && LA64_0 <= CARACTER)||LA64_0==NUMERO||LA64_0==SIGNAL) ) {
                alt64=1;
            }
            else if ( (LA64_0==ASTERISCO||(LA64_0 >= IDENT && LA64_0 <= IDENTMINUS)) ) {
                alt64=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 64, 0, input);

                throw nvae;

            }
            switch (alt64) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:21: parametros
                    {
                    pushFollow(FOLLOW_parametros_in_operacion1209);
                    parametros();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:32: identificadores
                    {
                    pushFollow(FOLLOW_identificadores_in_operacion1211);
                    identificadores();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:49: ( operadores ( identificadores | parametros ) )*
            loop66:
            do {
                int alt66=2;
                int LA66_0 = input.LA(1);

                if ( (LA66_0==ASTERISCO||(LA66_0 >= MAS && LA66_0 <= MENOS)||LA66_0==SLASH) ) {
                    alt66=1;
                }


                switch (alt66) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:50: operadores ( identificadores | parametros )
            	    {
            	    pushFollow(FOLLOW_operadores_in_operacion1215);
            	    operadores();

            	    state._fsp--;


            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:62: ( identificadores | parametros )
            	    int alt65=2;
            	    int LA65_0 = input.LA(1);

            	    if ( (LA65_0==ASTERISCO||(LA65_0 >= IDENT && LA65_0 <= IDENTMINUS)) ) {
            	        alt65=1;
            	    }
            	    else if ( ((LA65_0 >= CADENA && LA65_0 <= CARACTER)||LA65_0==NUMERO||LA65_0==SIGNAL) ) {
            	        alt65=2;
            	    }
            	    else {
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 65, 0, input);

            	        throw nvae;

            	    }
            	    switch (alt65) {
            	        case 1 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:63: identificadores
            	            {
            	            pushFollow(FOLLOW_identificadores_in_operacion1219);
            	            identificadores();

            	            state._fsp--;


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:112:79: parametros
            	            {
            	            pushFollow(FOLLOW_parametros_in_operacion1221);
            	            parametros();

            	            state._fsp--;


            	            }
            	            break;

            	    }


            	    }
            	    break;

            	default :
            	    break loop66;
                }
            } while (true);


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "operacion"



    // $ANTLR start "llamadafuncion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:7: llamadafuncion : identificadores ABRIRPARENTESIS ( ( identificadores | parametros ) ( COMA ( parametros | identificadores ) )* )? CERRARPARENTESIS ;
    public final void llamadafuncion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:22: ( identificadores ABRIRPARENTESIS ( ( identificadores | parametros ) ( COMA ( parametros | identificadores ) )* )? CERRARPARENTESIS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:24: identificadores ABRIRPARENTESIS ( ( identificadores | parametros ) ( COMA ( parametros | identificadores ) )* )? CERRARPARENTESIS
            {
            pushFollow(FOLLOW_identificadores_in_llamadafuncion1238);
            identificadores();

            state._fsp--;


            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_llamadafuncion1240); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:56: ( ( identificadores | parametros ) ( COMA ( parametros | identificadores ) )* )?
            int alt70=2;
            int LA70_0 = input.LA(1);

            if ( (LA70_0==ASTERISCO||(LA70_0 >= CADENA && LA70_0 <= CARACTER)||(LA70_0 >= IDENT && LA70_0 <= IDENTMINUS)||LA70_0==NUMERO||LA70_0==SIGNAL) ) {
                alt70=1;
            }
            switch (alt70) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:57: ( identificadores | parametros ) ( COMA ( parametros | identificadores ) )*
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:57: ( identificadores | parametros )
                    int alt67=2;
                    int LA67_0 = input.LA(1);

                    if ( (LA67_0==ASTERISCO||(LA67_0 >= IDENT && LA67_0 <= IDENTMINUS)) ) {
                        alt67=1;
                    }
                    else if ( ((LA67_0 >= CADENA && LA67_0 <= CARACTER)||LA67_0==NUMERO||LA67_0==SIGNAL) ) {
                        alt67=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 67, 0, input);

                        throw nvae;

                    }
                    switch (alt67) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:58: identificadores
                            {
                            pushFollow(FOLLOW_identificadores_in_llamadafuncion1244);
                            identificadores();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:74: parametros
                            {
                            pushFollow(FOLLOW_parametros_in_llamadafuncion1246);
                            parametros();

                            state._fsp--;


                            }
                            break;

                    }


                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:86: ( COMA ( parametros | identificadores ) )*
                    loop69:
                    do {
                        int alt69=2;
                        int LA69_0 = input.LA(1);

                        if ( (LA69_0==COMA) ) {
                            alt69=1;
                        }


                        switch (alt69) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:87: COMA ( parametros | identificadores )
                    	    {
                    	    match(input,COMA,FOLLOW_COMA_in_llamadafuncion1250); 

                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:92: ( parametros | identificadores )
                    	    int alt68=2;
                    	    int LA68_0 = input.LA(1);

                    	    if ( ((LA68_0 >= CADENA && LA68_0 <= CARACTER)||LA68_0==NUMERO||LA68_0==SIGNAL) ) {
                    	        alt68=1;
                    	    }
                    	    else if ( (LA68_0==ASTERISCO||(LA68_0 >= IDENT && LA68_0 <= IDENTMINUS)) ) {
                    	        alt68=2;
                    	    }
                    	    else {
                    	        NoViableAltException nvae =
                    	            new NoViableAltException("", 68, 0, input);

                    	        throw nvae;

                    	    }
                    	    switch (alt68) {
                    	        case 1 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:93: parametros
                    	            {
                    	            pushFollow(FOLLOW_parametros_in_llamadafuncion1253);
                    	            parametros();

                    	            state._fsp--;


                    	            }
                    	            break;
                    	        case 2 :
                    	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:113:104: identificadores
                    	            {
                    	            pushFollow(FOLLOW_identificadores_in_llamadafuncion1255);
                    	            identificadores();

                    	            state._fsp--;


                    	            }
                    	            break;

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop69;
                        }
                    } while (true);


                    }
                    break;

            }


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_llamadafuncion1262); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "llamadafuncion"



    // $ANTLR start "reglaelse"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:115:7: reglaelse : ELSE ( bloque | bloqueLlaves ) ;
    public final void reglaelse() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:115:17: ( ELSE ( bloque | bloqueLlaves ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:115:19: ELSE ( bloque | bloqueLlaves )
            {
            contador--; if (contador == 0) flagelse = false;

            match(input,ELSE,FOLLOW_ELSE_in_reglaelse1278); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:115:75: ( bloque | bloqueLlaves )
            int alt71=2;
            int LA71_0 = input.LA(1);

            if ( (LA71_0==ASTERISCO||LA71_0==BREAK||LA71_0==CHAR||LA71_0==CONTINUE||(LA71_0 >= DOUBLE && LA71_0 <= IF)||(LA71_0 >= INT && LA71_0 <= INTERVAL)||LA71_0==POINTER||LA71_0==PRINTF||(LA71_0 >= REGISTER && LA71_0 <= RETORNAR)||LA71_0==WHILE) ) {
                alt71=1;
            }
            else if ( (LA71_0==ABRIRLLAVE) ) {
                alt71=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 71, 0, input);

                throw nvae;

            }
            switch (alt71) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:115:76: bloque
                    {
                    pushFollow(FOLLOW_bloque_in_reglaelse1281);
                    bloque();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:115:83: bloqueLlaves
                    {
                    pushFollow(FOLLOW_bloqueLlaves_in_reglaelse1283);
                    bloqueLlaves();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "reglaelse"



    // $ANTLR start "metodo"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:117:3: metodo : cabecerafuncion bloqueLlaves ;
    public final void metodo() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:117:10: ( cabecerafuncion bloqueLlaves )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:117:12: cabecerafuncion bloqueLlaves
            {
            pushFollow(FOLLOW_cabecerafuncion_in_metodo1295);
            cabecerafuncion();

            state._fsp--;


            pushFollow(FOLLOW_bloqueLlaves_in_metodo1298);
            bloqueLlaves();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "metodo"



    // $ANTLR start "cabecerafuncion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:5: cabecerafuncion : ( tipo | VOID ) identificadores ABRIRPARENTESIS ( ( VOID | tipo IDENT ) ( COMA tipo parametros )* )? CERRARPARENTESIS ;
    public final void cabecerafuncion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:21: ( ( tipo | VOID ) identificadores ABRIRPARENTESIS ( ( VOID | tipo IDENT ) ( COMA tipo parametros )* )? CERRARPARENTESIS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:23: ( tipo | VOID ) identificadores ABRIRPARENTESIS ( ( VOID | tipo IDENT ) ( COMA tipo parametros )* )? CERRARPARENTESIS
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:23: ( tipo | VOID )
            int alt72=2;
            int LA72_0 = input.LA(1);

            if ( (LA72_0==CHAR||LA72_0==DOUBLE||LA72_0==INT||LA72_0==POINTER||LA72_0==REGISTER) ) {
                alt72=1;
            }
            else if ( (LA72_0==VOID) ) {
                alt72=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 72, 0, input);

                throw nvae;

            }
            switch (alt72) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:24: tipo
                    {
                    pushFollow(FOLLOW_tipo_in_cabecerafuncion1311);
                    tipo();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:31: VOID
                    {
                    match(input,VOID,FOLLOW_VOID_in_cabecerafuncion1315); 

                    }
                    break;

            }


            pushFollow(FOLLOW_identificadores_in_cabecerafuncion1318);
            identificadores();

            state._fsp--;


            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_cabecerafuncion1320); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:69: ( ( VOID | tipo IDENT ) ( COMA tipo parametros )* )?
            int alt75=2;
            int LA75_0 = input.LA(1);

            if ( (LA75_0==CHAR||LA75_0==DOUBLE||LA75_0==INT||LA75_0==POINTER||LA75_0==REGISTER||LA75_0==VOID) ) {
                alt75=1;
            }
            switch (alt75) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:70: ( VOID | tipo IDENT ) ( COMA tipo parametros )*
                    {
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:70: ( VOID | tipo IDENT )
                    int alt73=2;
                    int LA73_0 = input.LA(1);

                    if ( (LA73_0==VOID) ) {
                        alt73=1;
                    }
                    else if ( (LA73_0==CHAR||LA73_0==DOUBLE||LA73_0==INT||LA73_0==POINTER||LA73_0==REGISTER) ) {
                        alt73=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 73, 0, input);

                        throw nvae;

                    }
                    switch (alt73) {
                        case 1 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:71: VOID
                            {
                            match(input,VOID,FOLLOW_VOID_in_cabecerafuncion1324); 

                            }
                            break;
                        case 2 :
                            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:77: tipo IDENT
                            {
                            pushFollow(FOLLOW_tipo_in_cabecerafuncion1327);
                            tipo();

                            state._fsp--;


                            match(input,IDENT,FOLLOW_IDENT_in_cabecerafuncion1329); 

                            }
                            break;

                    }


                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:89: ( COMA tipo parametros )*
                    loop74:
                    do {
                        int alt74=2;
                        int LA74_0 = input.LA(1);

                        if ( (LA74_0==COMA) ) {
                            alt74=1;
                        }


                        switch (alt74) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:119:90: COMA tipo parametros
                    	    {
                    	    match(input,COMA,FOLLOW_COMA_in_cabecerafuncion1333); 

                    	    pushFollow(FOLLOW_tipo_in_cabecerafuncion1335);
                    	    tipo();

                    	    state._fsp--;


                    	    pushFollow(FOLLOW_parametros_in_cabecerafuncion1337);
                    	    parametros();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop74;
                        }
                    } while (true);


                    }
                    break;

            }


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_cabecerafuncion1343); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cabecerafuncion"



    // $ANTLR start "printf"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:121:5: printf : PRINTF ABRIRPARENTESIS CADENA ( COMA ( IDENT | IDENTMINUS | IDENTMAYUS | SIGNAL ) )* CERRARPARENTESIS ;
    public final void printf() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:121:12: ( PRINTF ABRIRPARENTESIS CADENA ( COMA ( IDENT | IDENTMINUS | IDENTMAYUS | SIGNAL ) )* CERRARPARENTESIS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:121:15: PRINTF ABRIRPARENTESIS CADENA ( COMA ( IDENT | IDENTMINUS | IDENTMAYUS | SIGNAL ) )* CERRARPARENTESIS
            {
            match(input,PRINTF,FOLLOW_PRINTF_in_printf1357); 

            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_printf1359); 

            match(input,CADENA,FOLLOW_CADENA_in_printf1361); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:121:45: ( COMA ( IDENT | IDENTMINUS | IDENTMAYUS | SIGNAL ) )*
            loop76:
            do {
                int alt76=2;
                int LA76_0 = input.LA(1);

                if ( (LA76_0==COMA) ) {
                    alt76=1;
                }


                switch (alt76) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:121:46: COMA ( IDENT | IDENTMINUS | IDENTMAYUS | SIGNAL )
            	    {
            	    match(input,COMA,FOLLOW_COMA_in_printf1364); 

            	    if ( (input.LA(1) >= IDENT && input.LA(1) <= IDENTMINUS)||input.LA(1)==SIGNAL ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop76;
                }
            } while (true);


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_printf1378); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "printf"



    // $ANTLR start "asignacion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:5: asignacion : declaracion ( ( IGUAL ( operacion | llamadafuncion ) ) | ( COMA declaracion ) )* ;
    public final void asignacion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:16: ( declaracion ( ( IGUAL ( operacion | llamadafuncion ) ) | ( COMA declaracion ) )* )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:19: declaracion ( ( IGUAL ( operacion | llamadafuncion ) ) | ( COMA declaracion ) )*
            {
            pushFollow(FOLLOW_declaracion_in_asignacion1391);
            declaracion();

            state._fsp--;


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:32: ( ( IGUAL ( operacion | llamadafuncion ) ) | ( COMA declaracion ) )*
            loop78:
            do {
                int alt78=3;
                int LA78_0 = input.LA(1);

                if ( (LA78_0==IGUAL) ) {
                    alt78=1;
                }
                else if ( (LA78_0==COMA) ) {
                    alt78=2;
                }


                switch (alt78) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:33: ( IGUAL ( operacion | llamadafuncion ) )
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:33: ( IGUAL ( operacion | llamadafuncion ) )
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:34: IGUAL ( operacion | llamadafuncion )
            	    {
            	    match(input,IGUAL,FOLLOW_IGUAL_in_asignacion1396); 

            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:40: ( operacion | llamadafuncion )
            	    int alt77=2;
            	    switch ( input.LA(1) ) {
            	    case CADENA:
            	    case CARACTER:
            	    case NUMERO:
            	    case SIGNAL:
            	        {
            	        alt77=1;
            	        }
            	        break;
            	    case ASTERISCO:
            	        {
            	        int LA77_2 = input.LA(2);

            	        if ( ((LA77_2 >= IDENT && LA77_2 <= IDENTMINUS)) ) {
            	            int LA77_3 = input.LA(3);

            	            if ( (LA77_3==ASTERISCO||LA77_3==CERRARPARENTESIS||LA77_3==COMA||LA77_3==IGUAL||(LA77_3 >= MAS && LA77_3 <= MENOS)||LA77_3==SEPARADOR||LA77_3==SLASH) ) {
            	                alt77=1;
            	            }
            	            else if ( (LA77_3==ABRIRPARENTESIS) ) {
            	                alt77=2;
            	            }
            	            else {
            	                NoViableAltException nvae =
            	                    new NoViableAltException("", 77, 3, input);

            	                throw nvae;

            	            }
            	        }
            	        else {
            	            NoViableAltException nvae =
            	                new NoViableAltException("", 77, 2, input);

            	            throw nvae;

            	        }
            	        }
            	        break;
            	    case IDENT:
            	    case IDENTMAYUS:
            	    case IDENTMINUS:
            	        {
            	        int LA77_3 = input.LA(2);

            	        if ( (LA77_3==ASTERISCO||LA77_3==CERRARPARENTESIS||LA77_3==COMA||LA77_3==IGUAL||(LA77_3 >= MAS && LA77_3 <= MENOS)||LA77_3==SEPARADOR||LA77_3==SLASH) ) {
            	            alt77=1;
            	        }
            	        else if ( (LA77_3==ABRIRPARENTESIS) ) {
            	            alt77=2;
            	        }
            	        else {
            	            NoViableAltException nvae =
            	                new NoViableAltException("", 77, 3, input);

            	            throw nvae;

            	        }
            	        }
            	        break;
            	    default:
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 77, 0, input);

            	        throw nvae;

            	    }

            	    switch (alt77) {
            	        case 1 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:41: operacion
            	            {
            	            pushFollow(FOLLOW_operacion_in_asignacion1399);
            	            operacion();

            	            state._fsp--;


            	            }
            	            break;
            	        case 2 :
            	            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:53: llamadafuncion
            	            {
            	            pushFollow(FOLLOW_llamadafuncion_in_asignacion1403);
            	            llamadafuncion();

            	            state._fsp--;


            	            }
            	            break;

            	    }


            	    }


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:72: ( COMA declaracion )
            	    {
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:72: ( COMA declaracion )
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:122:73: COMA declaracion
            	    {
            	    match(input,COMA,FOLLOW_COMA_in_asignacion1410); 

            	    pushFollow(FOLLOW_declaracion_in_asignacion1412);
            	    declaracion();

            	    state._fsp--;


            	    }


            	    }
            	    break;

            	default :
            	    break loop78;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "asignacion"



    // $ANTLR start "declaracion"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:5: declaracion : ( tipo | INTERVAL )? ( identificadores | vector ) ;
    public final void declaracion() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:17: ( ( tipo | INTERVAL )? ( identificadores | vector ) )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:19: ( tipo | INTERVAL )? ( identificadores | vector )
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:19: ( tipo | INTERVAL )?
            int alt79=3;
            int LA79_0 = input.LA(1);

            if ( (LA79_0==CHAR||LA79_0==DOUBLE||LA79_0==INT||LA79_0==POINTER||LA79_0==REGISTER) ) {
                alt79=1;
            }
            else if ( (LA79_0==INTERVAL) ) {
                alt79=2;
            }
            switch (alt79) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:20: tipo
                    {
                    pushFollow(FOLLOW_tipo_in_declaracion1427);
                    tipo();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:25: INTERVAL
                    {
                    match(input,INTERVAL,FOLLOW_INTERVAL_in_declaracion1429); 

                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:36: ( identificadores | vector )
            int alt80=2;
            int LA80_0 = input.LA(1);

            if ( (LA80_0==ASTERISCO) ) {
                int LA80_1 = input.LA(2);

                if ( ((LA80_1 >= IDENT && LA80_1 <= IDENTMINUS)) ) {
                    int LA80_2 = input.LA(3);

                    if ( (LA80_2==CERRARPARENTESIS||LA80_2==COMA||LA80_2==IGUAL||LA80_2==SEPARADOR) ) {
                        alt80=1;
                    }
                    else if ( (LA80_2==ABRIRCORCHETE) ) {
                        alt80=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 80, 2, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 80, 1, input);

                    throw nvae;

                }
            }
            else if ( ((LA80_0 >= IDENT && LA80_0 <= IDENTMINUS)) ) {
                int LA80_2 = input.LA(2);

                if ( (LA80_2==CERRARPARENTESIS||LA80_2==COMA||LA80_2==IGUAL||LA80_2==SEPARADOR) ) {
                    alt80=1;
                }
                else if ( (LA80_2==ABRIRCORCHETE) ) {
                    alt80=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 80, 2, input);

                    throw nvae;

                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 80, 0, input);

                throw nvae;

            }
            switch (alt80) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:37: identificadores
                    {
                    pushFollow(FOLLOW_identificadores_in_declaracion1434);
                    identificadores();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:123:53: vector
                    {
                    pushFollow(FOLLOW_vector_in_declaracion1436);
                    vector();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "declaracion"



    // $ANTLR start "ret"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:5: ret : RETORNAR ( ABRIRPARENTESIS )? ( identificadores | parametros | llamadafuncion )? ( CERRARPARENTESIS )? SEPARADOR ;
    public final void ret() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:9: ( RETORNAR ( ABRIRPARENTESIS )? ( identificadores | parametros | llamadafuncion )? ( CERRARPARENTESIS )? SEPARADOR )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:11: RETORNAR ( ABRIRPARENTESIS )? ( identificadores | parametros | llamadafuncion )? ( CERRARPARENTESIS )? SEPARADOR
            {
            match(input,RETORNAR,FOLLOW_RETORNAR_in_ret1453); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:20: ( ABRIRPARENTESIS )?
            int alt81=2;
            int LA81_0 = input.LA(1);

            if ( (LA81_0==ABRIRPARENTESIS) ) {
                alt81=1;
            }
            switch (alt81) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:20: ABRIRPARENTESIS
                    {
                    match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_ret1455); 

                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:37: ( identificadores | parametros | llamadafuncion )?
            int alt82=4;
            switch ( input.LA(1) ) {
                case ASTERISCO:
                    {
                    int LA82_1 = input.LA(2);

                    if ( ((LA82_1 >= IDENT && LA82_1 <= IDENTMINUS)) ) {
                        int LA82_2 = input.LA(3);

                        if ( (LA82_2==CERRARPARENTESIS||LA82_2==SEPARADOR) ) {
                            alt82=1;
                        }
                        else if ( (LA82_2==ABRIRPARENTESIS) ) {
                            alt82=3;
                        }
                    }
                    }
                    break;
                case IDENT:
                case IDENTMAYUS:
                case IDENTMINUS:
                    {
                    int LA82_2 = input.LA(2);

                    if ( (LA82_2==CERRARPARENTESIS||LA82_2==SEPARADOR) ) {
                        alt82=1;
                    }
                    else if ( (LA82_2==ABRIRPARENTESIS) ) {
                        alt82=3;
                    }
                    }
                    break;
                case CADENA:
                case CARACTER:
                case NUMERO:
                case SIGNAL:
                    {
                    alt82=2;
                    }
                    break;
            }

            switch (alt82) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:38: identificadores
                    {
                    pushFollow(FOLLOW_identificadores_in_ret1459);
                    identificadores();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:54: parametros
                    {
                    pushFollow(FOLLOW_parametros_in_ret1461);
                    parametros();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:65: llamadafuncion
                    {
                    pushFollow(FOLLOW_llamadafuncion_in_ret1463);
                    llamadafuncion();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:82: ( CERRARPARENTESIS )?
            int alt83=2;
            int LA83_0 = input.LA(1);

            if ( (LA83_0==CERRARPARENTESIS) ) {
                alt83=1;
            }
            switch (alt83) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:125:82: CERRARPARENTESIS
                    {
                    match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_ret1467); 

                    }
                    break;

            }


            match(input,SEPARADOR,FOLLOW_SEPARADOR_in_ret1470); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "ret"



    // $ANTLR start "condicionalaritmetico"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:126:5: condicionalaritmetico : condicion INTERROGANTE NUMERO DOSPUNTOS NUMERO SEPARADOR ;
    public final void condicionalaritmetico() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:126:26: ( condicion INTERROGANTE NUMERO DOSPUNTOS NUMERO SEPARADOR )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:126:28: condicion INTERROGANTE NUMERO DOSPUNTOS NUMERO SEPARADOR
            {
            pushFollow(FOLLOW_condicion_in_condicionalaritmetico1480);
            condicion();

            state._fsp--;


            match(input,INTERROGANTE,FOLLOW_INTERROGANTE_in_condicionalaritmetico1482); 

            match(input,NUMERO,FOLLOW_NUMERO_in_condicionalaritmetico1484); 

            match(input,DOSPUNTOS,FOLLOW_DOSPUNTOS_in_condicionalaritmetico1486); 

            match(input,NUMERO,FOLLOW_NUMERO_in_condicionalaritmetico1488); 

            match(input,SEPARADOR,FOLLOW_SEPARADOR_in_condicionalaritmetico1490); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "condicionalaritmetico"



    // $ANTLR start "cabecerainterval"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:5: cabecerainterval : INTERVAL identificadores ABRIRPARENTESIS ( identificadores ( COMA identificadores )* )? CERRARPARENTESIS ;
    public final void cabecerainterval() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:22: ( INTERVAL identificadores ABRIRPARENTESIS ( identificadores ( COMA identificadores )* )? CERRARPARENTESIS )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:24: INTERVAL identificadores ABRIRPARENTESIS ( identificadores ( COMA identificadores )* )? CERRARPARENTESIS
            {
            match(input,INTERVAL,FOLLOW_INTERVAL_in_cabecerainterval1507); 

            pushFollow(FOLLOW_identificadores_in_cabecerainterval1509);
            identificadores();

            state._fsp--;


            match(input,ABRIRPARENTESIS,FOLLOW_ABRIRPARENTESIS_in_cabecerainterval1511); 

            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:65: ( identificadores ( COMA identificadores )* )?
            int alt85=2;
            int LA85_0 = input.LA(1);

            if ( (LA85_0==ASTERISCO||(LA85_0 >= IDENT && LA85_0 <= IDENTMINUS)) ) {
                alt85=1;
            }
            switch (alt85) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:66: identificadores ( COMA identificadores )*
                    {
                    pushFollow(FOLLOW_identificadores_in_cabecerainterval1514);
                    identificadores();

                    state._fsp--;


                    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:82: ( COMA identificadores )*
                    loop84:
                    do {
                        int alt84=2;
                        int LA84_0 = input.LA(1);

                        if ( (LA84_0==COMA) ) {
                            alt84=1;
                        }


                        switch (alt84) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:128:83: COMA identificadores
                    	    {
                    	    match(input,COMA,FOLLOW_COMA_in_cabecerainterval1517); 

                    	    pushFollow(FOLLOW_identificadores_in_cabecerainterval1519);
                    	    identificadores();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop84;
                        }
                    } while (true);


                    }
                    break;

            }


            match(input,CERRARPARENTESIS,FOLLOW_CERRARPARENTESIS_in_cabecerainterval1525); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cabecerainterval"



    // $ANTLR start "bloqueinterval"
    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:5: bloqueinterval : ( cabecerainterval | bloque | bloqueLlaves )* ;
    public final void bloqueinterval() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:20: ( ( cabecerainterval | bloque | bloqueLlaves )* )
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:22: ( cabecerainterval | bloque | bloqueLlaves )*
            {
            // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:22: ( cabecerainterval | bloque | bloqueLlaves )*
            loop86:
            do {
                int alt86=4;
                switch ( input.LA(1) ) {
                case INTERVAL:
                    {
                    int LA86_2 = input.LA(2);

                    if ( (LA86_2==ASTERISCO) ) {
                        int LA86_5 = input.LA(3);

                        if ( ((LA86_5 >= IDENT && LA86_5 <= IDENTMINUS)) ) {
                            int LA86_6 = input.LA(4);

                            if ( (LA86_6==ABRIRPARENTESIS) ) {
                                alt86=1;
                            }
                            else if ( (LA86_6==ABRIRCORCHETE||LA86_6==COMA||LA86_6==IGUAL||LA86_6==SEPARADOR) ) {
                                alt86=2;
                            }


                        }


                    }
                    else if ( ((LA86_2 >= IDENT && LA86_2 <= IDENTMINUS)) ) {
                        int LA86_6 = input.LA(3);

                        if ( (LA86_6==ABRIRPARENTESIS) ) {
                            alt86=1;
                        }
                        else if ( (LA86_6==ABRIRCORCHETE||LA86_6==COMA||LA86_6==IGUAL||LA86_6==SEPARADOR) ) {
                            alt86=2;
                        }


                    }


                    }
                    break;
                case ASTERISCO:
                case BREAK:
                case CHAR:
                case CONTINUE:
                case DOUBLE:
                case ELSE:
                case FOR:
                case IDENT:
                case IDENTMAYUS:
                case IDENTMINUS:
                case IF:
                case INT:
                case POINTER:
                case PRINTF:
                case REGISTER:
                case RETORNAR:
                case WHILE:
                    {
                    alt86=2;
                    }
                    break;
                case ABRIRLLAVE:
                    {
                    alt86=3;
                    }
                    break;

                }

                switch (alt86) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:23: cabecerainterval
            	    {
            	    pushFollow(FOLLOW_cabecerainterval_in_bloqueinterval1537);
            	    cabecerainterval();

            	    state._fsp--;


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:41: bloque
            	    {
            	    pushFollow(FOLLOW_bloque_in_bloqueinterval1540);
            	    bloque();

            	    state._fsp--;


            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\Jose\\workspace\\practica7\\src\\main\\java\\PL\\practica7\\AnalizadorYACCParser.g:129:48: bloqueLlaves
            	    {
            	    pushFollow(FOLLOW_bloqueLlaves_in_bloqueinterval1542);
            	    bloqueLlaves();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop86;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bloqueinterval"

    // Delegated rules


 

    public static final BitSet FOLLOW_ASTERISCO_in_identificadores87 = new BitSet(new long[]{0x0000003800000000L});
    public static final BitSet FOLLOW_set_in_identificadores90 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_identificadores_in_vector119 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_corchetes_in_vector121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRCORCHETE_in_corchetes131 = new BitSet(new long[]{0x4204003800059000L});
    public static final BitSet FOLLOW_RANGO_in_corchetes134 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_operacion_in_corchetes137 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_CERRARCORCHETE_in_corchetes141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_bloque1_in_yacc188 = new BitSet(new long[]{0x2000000000000000L});
    public static final BitSet FOLLOW_SEPARADORBLOQUE_in_yacc191 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_bloque2_in_yacc193 = new BitSet(new long[]{0x2000000000000000L});
    public static final BitSet FOLLOW_SEPARADORBLOQUE_in_yacc195 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000200L});
    public static final BitSet FOLLOW_bloque3_in_yacc197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_bloqueDeclaracion_in_bloque1210 = new BitSet(new long[]{0x0040000000000000L});
    public static final BitSet FOLLOW_declaraciontoken_in_bloque1212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRVARIABLES_in_bloqueDeclaracion225 = new BitSet(new long[]{0x04200C0100600200L,0x0000000000000020L});
    public static final BitSet FOLLOW_dentro_declaracion_in_bloqueDeclaracion227 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_CERRARVARIABLES_in_bloqueDeclaracion229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALMOHADILLA_in_incluir242 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_INCLUDE_in_incluir244 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_incluir247 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_incluir249 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_CERRARANGULO_in_incluir252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_incluir_in_dentro_declaracion264 = new BitSet(new long[]{0x04200C0100400202L,0x0000000000000020L});
    public static final BitSet FOLLOW_definiryacc_in_dentro_declaracion268 = new BitSet(new long[]{0x04200C0100400202L,0x0000000000000020L});
    public static final BitSet FOLLOW_declaracionyacc_in_dentro_declaracion270 = new BitSet(new long[]{0x04200C0100400202L,0x0000000000000020L});
    public static final BitSet FOLLOW_estructura_in_dentro_declaracion272 = new BitSet(new long[]{0x04200C0100400202L,0x0000000000000020L});
    public static final BitSet FOLLOW_tipo_in_declaracionyacc287 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_INTERVAL_in_declaracionyacc289 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_declaracionyacc292 = new BitSet(new long[]{0x10000000008000A0L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_declaracionyacc296 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_declaracionyacc298 = new BitSet(new long[]{0x1000000000800000L});
    public static final BitSet FOLLOW_corchetes_in_declaracionyacc301 = new BitSet(new long[]{0x1000000000800000L});
    public static final BitSet FOLLOW_COMA_in_declaracionyacc328 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_declaracionyacc331 = new BitSet(new long[]{0x10000000008000A0L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_declaracionyacc335 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_declaracionyacc337 = new BitSet(new long[]{0x1000000000800000L});
    public static final BitSet FOLLOW_corchetes_in_declaracionyacc340 = new BitSet(new long[]{0x1000000000800000L});
    public static final BitSet FOLLOW_SEPARADOR_in_declaracionyacc346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALMOHADILLA_in_definiryacc358 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_DEFINE_in_definiryacc360 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_definiryacc362 = new BitSet(new long[]{0x0420040100400000L});
    public static final BitSet FOLLOW_tipo_in_definiryacc364 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TYPEDEF_in_estructura376 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
    public static final BitSet FOLLOW_STRUCT_in_estructura378 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_IDENTMINUS_in_estructura380 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ABRIRLLAVE_in_estructura382 = new BitSet(new long[]{0x04200C0100400000L});
    public static final BitSet FOLLOW_declaracionyacc_in_estructura385 = new BitSet(new long[]{0x04200C0100480000L});
    public static final BitSet FOLLOW_CERRARLLAVE_in_estructura390 = new BitSet(new long[]{0x0000083800001000L});
    public static final BitSet FOLLOW_identificadores_in_estructura393 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_INTERVAL_in_estructura395 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_estructura398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_token421 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_TOKEN_in_token423 = new BitSet(new long[]{0x0000001000000010L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_token426 = new BitSet(new long[]{0x0000003800000000L});
    public static final BitSet FOLLOW_set_in_token428 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_CERRARANGULO_in_token436 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_IDENTMAYUS_in_token440 = new BitSet(new long[]{0x0000001000000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_left452 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_LEFT_in_left454 = new BitSet(new long[]{0x0000001000010000L});
    public static final BitSet FOLLOW_CARACTER_in_left457 = new BitSet(new long[]{0x0000000000010002L});
    public static final BitSet FOLLOW_IDENTMAYUS_in_left462 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_type474 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_TYPE_in_type476 = new BitSet(new long[]{0x0000002000000010L});
    public static final BitSet FOLLOW_ABRIRANGULO_in_type479 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_type481 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_CERRARANGULO_in_type483 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_IDENTMINUS_in_type487 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_start498 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_START_in_start500 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_IDENTMINUS_in_start502 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PORCENTAJE_in_union513 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_UNION_in_union515 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ABRIRLLAVE_in_union517 = new BitSet(new long[]{0x04200C0100480000L});
    public static final BitSet FOLLOW_declaracionyacc_in_union520 = new BitSet(new long[]{0x04200C0100480000L});
    public static final BitSet FOLLOW_CERRARLLAVE_in_union524 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_start_in_declaraciontoken535 = new BitSet(new long[]{0x0040000000000002L});
    public static final BitSet FOLLOW_token_in_declaraciontoken539 = new BitSet(new long[]{0x0040000000000002L});
    public static final BitSet FOLLOW_left_in_declaraciontoken541 = new BitSet(new long[]{0x0040000000000002L});
    public static final BitSet FOLLOW_union_in_declaraciontoken543 = new BitSet(new long[]{0x0040000000000002L});
    public static final BitSet FOLLOW_type_in_declaraciontoken545 = new BitSet(new long[]{0x0040000000000002L});
    public static final BitSet FOLLOW_reglasyacc_in_bloque2563 = new BitSet(new long[]{0x0000002000000002L});
    public static final BitSet FOLLOW_IDENTMINUS_in_reglasyacc573 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_DOSPUNTOS_in_reglasyacc575 = new BitSet(new long[]{0x0048003800010040L});
    public static final BitSet FOLLOW_OR_in_reglasyacc578 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_IDENT_in_reglasyacc580 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_IDENTMAYUS_in_reglasyacc582 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_PORCENTAJE_in_reglasyacc584 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_IDENTMINUS_in_reglasyacc586 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_CARACTER_in_reglasyacc588 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_accion_in_reglasyacc591 = new BitSet(new long[]{0x1048003800010040L});
    public static final BitSet FOLLOW_SEPARADOR_in_reglasyacc595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRLLAVE_in_accion606 = new BitSet(new long[]{0x4080007800001000L});
    public static final BitSet FOLLOW_condicionif_in_accion609 = new BitSet(new long[]{0x4080007800081000L});
    public static final BitSet FOLLOW_signaloperations_in_accion615 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_printf_in_accion618 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_IDENTMAYUS_in_accion621 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_IDENTMINUS_in_accion623 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_accion626 = new BitSet(new long[]{0x4080007800081000L});
    public static final BitSet FOLLOW_CERRARLLAVE_in_accion631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SIGNAL_in_signaloperations643 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_vector_in_signaloperations645 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_IGUAL_in_signaloperations650 = new BitSet(new long[]{0x4001003800001000L});
    public static final BitSet FOLLOW_MENOS_in_signaloperations652 = new BitSet(new long[]{0x4000003800001000L});
    public static final BitSet FOLLOW_SIGNAL_in_signaloperations656 = new BitSet(new long[]{0x8041808000001002L});
    public static final BitSet FOLLOW_vector_in_signaloperations658 = new BitSet(new long[]{0x8041808000001002L});
    public static final BitSet FOLLOW_operadores_in_signaloperations663 = new BitSet(new long[]{0x4000003800001000L});
    public static final BitSet FOLLOW_PORCENTAJE_in_signaloperations665 = new BitSet(new long[]{0x4000003800001000L});
    public static final BitSet FOLLOW_SIGNAL_in_signaloperations669 = new BitSet(new long[]{0x8041808000001002L});
    public static final BitSet FOLLOW_vector_in_signaloperations671 = new BitSet(new long[]{0x8041808000001002L});
    public static final BitSet FOLLOW_IGUAL_in_signaloperations681 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_llamadafuncion_in_signaloperations683 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_definir_in_bloque3701 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000200L});
    public static final BitSet FOLLOW_bloqueyylex_in_bloque3704 = new BitSet(new long[]{0x0CA00C7F04405040L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloqueinterval_in_bloque3706 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALMOHADILLA_in_definir717 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_DEFINE_in_definir719 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_definir721 = new BitSet(new long[]{0x4004000000018000L});
    public static final BitSet FOLLOW_parametros_in_definir723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_YYLEX_in_bloqueyylex733 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_bloqueyylex735 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_bloqueyylex737 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_bloqueLlaves_in_bloqueyylex739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_buclewhile_in_bloque750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_condicionif_in_bloque754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_buclefor_in_bloque757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ret_in_bloque760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_reglaelse_in_bloque763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_asignacion_in_bloque769 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_printf_in_bloque771 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_llamadafuncion_in_bloque773 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_BREAK_in_bloque776 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_CONTINUE_in_bloque778 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_bloque781 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRLLAVE_in_bloqueLlaves793 = new BitSet(new long[]{0x0CA00C7F04485000L,0x0000000000000100L});
    public static final BitSet FOLLOW_buclewhile_in_bloqueLlaves797 = new BitSet(new long[]{0x0CA00C7F04485000L,0x0000000000000100L});
    public static final BitSet FOLLOW_condicionif_in_bloqueLlaves800 = new BitSet(new long[]{0x0CA00C7F04485000L,0x0000000000000100L});
    public static final BitSet FOLLOW_buclefor_in_bloqueLlaves803 = new BitSet(new long[]{0x0CA00C7F04485000L,0x0000000000000100L});
    public static final BitSet FOLLOW_reglaelse_in_bloqueLlaves806 = new BitSet(new long[]{0x0CA00C7F04485000L,0x0000000000000100L});
    public static final BitSet FOLLOW_asignacion_in_bloqueLlaves812 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_printf_in_bloqueLlaves814 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_llamadafuncion_in_bloqueLlaves816 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_BREAK_in_bloqueLlaves819 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_CONTINUE_in_bloqueLlaves821 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_bloqueLlaves824 = new BitSet(new long[]{0x0CA00C7F04485000L,0x0000000000000100L});
    public static final BitSet FOLLOW_ret_in_bloqueLlaves829 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_CERRARLLAVE_in_bloqueLlaves833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FOR_in_buclefor847 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_buclefor849 = new BitSet(new long[]{0x14200C3900401000L});
    public static final BitSet FOLLOW_dentrofor_in_buclefor851 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_buclefor853 = new BitSet(new long[]{0x0CA00C7F04405040L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloque_in_buclefor856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_bloqueLlaves_in_buclefor858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INCREMENTO_in_incremento871 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_incremento873 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_identificadores_in_incremento877 = new BitSet(new long[]{0x0000020000000000L});
    public static final BitSet FOLLOW_INCREMENTO_in_incremento879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DECREMENTO_in_decremento890 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_decremento892 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_identificadores_in_decremento896 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_DECREMENTO_in_decremento898 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_asignacion_in_dentrofor912 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_dentrofor914 = new BitSet(new long[]{0x1000000000000080L});
    public static final BitSet FOLLOW_SEPARADOR_in_dentrofor919 = new BitSet(new long[]{0x1000000000000080L});
    public static final BitSet FOLLOW_condicionfor_in_dentrofor922 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_dentrofor925 = new BitSet(new long[]{0x04200E3908C01002L});
    public static final BitSet FOLLOW_incremento_in_dentrofor928 = new BitSet(new long[]{0x04200C3900C01002L});
    public static final BitSet FOLLOW_decremento_in_dentrofor930 = new BitSet(new long[]{0x04200C3900C01002L});
    public static final BitSet FOLLOW_COMA_in_dentrofor934 = new BitSet(new long[]{0x04200C3900401002L});
    public static final BitSet FOLLOW_asignacion_in_dentrofor937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_operacionparen_in_condicionfor949 = new BitSet(new long[]{0x0000008000020010L,0x0000000000000400L});
    public static final BitSet FOLLOW_angulos_in_condicionfor953 = new BitSet(new long[]{0x000000B800001000L});
    public static final BitSet FOLLOW_IGUAL_in_condicionfor955 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_DISTINTO_in_condicionfor960 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_IGUAL_in_condicionfor964 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_condicionfor967 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_WHILE_in_buclewhile979 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_buclewhile981 = new BitSet(new long[]{0x4004023808019080L,0x0000000000000800L});
    public static final BitSet FOLLOW_condiciones_in_buclewhile983 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_buclewhile985 = new BitSet(new long[]{0x0CA00C7F04405040L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloque_in_buclewhile988 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_bloqueLlaves_in_buclewhile991 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IF_in_condicionif1005 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_condicionif1008 = new BitSet(new long[]{0x4004023808019080L,0x0000000000000800L});
    public static final BitSet FOLLOW_condiciones_in_condicionif1010 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_condicionif1012 = new BitSet(new long[]{0x0CA00C7F04405040L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloque_in_condicionif1015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_bloqueLlaves_in_condicionif1018 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_condicion_in_condiciones1035 = new BitSet(new long[]{0x0018000002000C02L});
    public static final BitSet FOLLOW_operadoreslogicos_in_condiciones1040 = new BitSet(new long[]{0x4004023808019080L,0x0000000000000800L});
    public static final BitSet FOLLOW_COMPARACION_in_condiciones1042 = new BitSet(new long[]{0x4004023808019080L,0x0000000000000800L});
    public static final BitSet FOLLOW_condicion_in_condiciones1046 = new BitSet(new long[]{0x0018000002000C02L});
    public static final BitSet FOLLOW_EXCLAMACION_in_condicion1071 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_condicion1073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_operacionparen_in_condicion1087 = new BitSet(new long[]{0x0000008000020012L,0x0000000000000400L});
    public static final BitSet FOLLOW_operacion_in_condicion1089 = new BitSet(new long[]{0x0000008000020012L,0x0000000000000400L});
    public static final BitSet FOLLOW_angulos_in_condicion1095 = new BitSet(new long[]{0x400400B800019080L});
    public static final BitSet FOLLOW_IGUAL_in_condicion1097 = new BitSet(new long[]{0x4004003800019080L});
    public static final BitSet FOLLOW_DISTINTO_in_condicion1102 = new BitSet(new long[]{0x4004003800019080L});
    public static final BitSet FOLLOW_IGUAL_in_condicion1106 = new BitSet(new long[]{0x4004003800019080L});
    public static final BitSet FOLLOW_operacionparen_in_condicion1110 = new BitSet(new long[]{0x0000008000020012L,0x0000000000000400L});
    public static final BitSet FOLLOW_operacion_in_condicion1112 = new BitSet(new long[]{0x0000008000020012L,0x0000000000000400L});
    public static final BitSet FOLLOW_llamadafuncion_in_condicion1114 = new BitSet(new long[]{0x0000008000020012L,0x0000000000000400L});
    public static final BitSet FOLLOW_EXCLAMACION_in_condicion1131 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_llamadafuncion_in_condicion1134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_incremento_in_condicion1148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_decremento_in_condicion1150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_operacionparen1171 = new BitSet(new long[]{0x44240C3900419000L});
    public static final BitSet FOLLOW_parametros_in_operacionparen1176 = new BitSet(new long[]{0x8001800000001000L});
    public static final BitSet FOLLOW_identificadores_in_operacionparen1178 = new BitSet(new long[]{0x8001800000001000L});
    public static final BitSet FOLLOW_operadores_in_operacionparen1181 = new BitSet(new long[]{0x4004003800019000L});
    public static final BitSet FOLLOW_identificadores_in_operacionparen1185 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_parametros_in_operacionparen1187 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_asignacion_in_operacionparen1191 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_operacionparen1194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_parametros_in_operacion1209 = new BitSet(new long[]{0x8001800000001002L});
    public static final BitSet FOLLOW_identificadores_in_operacion1211 = new BitSet(new long[]{0x8001800000001002L});
    public static final BitSet FOLLOW_operadores_in_operacion1215 = new BitSet(new long[]{0x4004003800019000L});
    public static final BitSet FOLLOW_identificadores_in_operacion1219 = new BitSet(new long[]{0x8001800000001002L});
    public static final BitSet FOLLOW_parametros_in_operacion1221 = new BitSet(new long[]{0x8001800000001002L});
    public static final BitSet FOLLOW_identificadores_in_llamadafuncion1238 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_llamadafuncion1240 = new BitSet(new long[]{0x4004003800119000L});
    public static final BitSet FOLLOW_identificadores_in_llamadafuncion1244 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_parametros_in_llamadafuncion1246 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_COMA_in_llamadafuncion1250 = new BitSet(new long[]{0x4004003800019000L});
    public static final BitSet FOLLOW_parametros_in_llamadafuncion1253 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_identificadores_in_llamadafuncion1255 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_llamadafuncion1262 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ELSE_in_reglaelse1278 = new BitSet(new long[]{0x0CA00C7F04405040L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloque_in_reglaelse1281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_bloqueLlaves_in_reglaelse1283 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cabecerafuncion_in_metodo1295 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_bloqueLlaves_in_metodo1298 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_tipo_in_cabecerafuncion1311 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_VOID_in_cabecerafuncion1315 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_cabecerafuncion1318 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_cabecerafuncion1320 = new BitSet(new long[]{0x0420040100500000L,0x0000000000000080L});
    public static final BitSet FOLLOW_VOID_in_cabecerafuncion1324 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_tipo_in_cabecerafuncion1327 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_IDENT_in_cabecerafuncion1329 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_COMA_in_cabecerafuncion1333 = new BitSet(new long[]{0x0420040100400000L});
    public static final BitSet FOLLOW_tipo_in_cabecerafuncion1335 = new BitSet(new long[]{0x4004000000018000L});
    public static final BitSet FOLLOW_parametros_in_cabecerafuncion1337 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_cabecerafuncion1343 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PRINTF_in_printf1357 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_printf1359 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_CADENA_in_printf1361 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_COMA_in_printf1364 = new BitSet(new long[]{0x4000003800000000L});
    public static final BitSet FOLLOW_set_in_printf1366 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_printf1378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_declaracion_in_asignacion1391 = new BitSet(new long[]{0x0000008000800002L});
    public static final BitSet FOLLOW_IGUAL_in_asignacion1396 = new BitSet(new long[]{0x4004003800019000L});
    public static final BitSet FOLLOW_operacion_in_asignacion1399 = new BitSet(new long[]{0x0000008000800002L});
    public static final BitSet FOLLOW_llamadafuncion_in_asignacion1403 = new BitSet(new long[]{0x0000008000800002L});
    public static final BitSet FOLLOW_COMA_in_asignacion1410 = new BitSet(new long[]{0x04200C3900401000L});
    public static final BitSet FOLLOW_declaracion_in_asignacion1412 = new BitSet(new long[]{0x0000008000800002L});
    public static final BitSet FOLLOW_tipo_in_declaracion1427 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_INTERVAL_in_declaracion1429 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_declaracion1434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_vector_in_declaracion1436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RETORNAR_in_ret1453 = new BitSet(new long[]{0x5004003800119080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_ret1455 = new BitSet(new long[]{0x5004003800119000L});
    public static final BitSet FOLLOW_identificadores_in_ret1459 = new BitSet(new long[]{0x1000000000100000L});
    public static final BitSet FOLLOW_parametros_in_ret1461 = new BitSet(new long[]{0x1000000000100000L});
    public static final BitSet FOLLOW_llamadafuncion_in_ret1463 = new BitSet(new long[]{0x1000000000100000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_ret1467 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_ret1470 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_condicion_in_condicionalaritmetico1480 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_INTERROGANTE_in_condicionalaritmetico1482 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_NUMERO_in_condicionalaritmetico1484 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_DOSPUNTOS_in_condicionalaritmetico1486 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_NUMERO_in_condicionalaritmetico1488 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_SEPARADOR_in_condicionalaritmetico1490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INTERVAL_in_cabecerainterval1507 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_cabecerainterval1509 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_ABRIRPARENTESIS_in_cabecerainterval1511 = new BitSet(new long[]{0x0000003800101000L});
    public static final BitSet FOLLOW_identificadores_in_cabecerainterval1514 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_COMA_in_cabecerainterval1517 = new BitSet(new long[]{0x0000003800001000L});
    public static final BitSet FOLLOW_identificadores_in_cabecerainterval1519 = new BitSet(new long[]{0x0000000000900000L});
    public static final BitSet FOLLOW_CERRARPARENTESIS_in_cabecerainterval1525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cabecerainterval_in_bloqueinterval1537 = new BitSet(new long[]{0x0CA00C7F04405042L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloque_in_bloqueinterval1540 = new BitSet(new long[]{0x0CA00C7F04405042L,0x0000000000000100L});
    public static final BitSet FOLLOW_bloqueLlaves_in_bloqueinterval1542 = new BitSet(new long[]{0x0CA00C7F04405042L,0x0000000000000100L});

}